如有版权问题,请立即联系我,我将马上删除。
Flash播放器: FlashPlayerDebugger.exe
playerglobal: playerglobal.swc
AS3 3D框架:Alternativa3D 8
相关文件打包下载(debug播放器+playerglobal.swc+FlashPlayer11_0_1.xml+DebugInfo.as):
下面的配置测试文件我也写了一遍,上传了,大家想测试是否可用下载:
Flash player11 AIR3 配置测试.rar
1. 下载 debug独立播放器(点击下载),重命名为 FlashPlayerDebugger.exe,将其复制到:
Flash CS5安装目录\Players/Debug (建议先备份该文件夹中原来的FlashPlayerDebugger.exe)
2. 下载 playerglobal.swc(点击下载),名字可以改为playerglobal11_0_1.swc(表示对应FP11版本11.0.1.152),将其复制到:
Flash CS5安装目录\Common\Configuration\ActionScript 3.0\FP11_0_1 (FP11_0_1文件夹需自行创建)
用记事本打开 FlashPlayer11_0_1.xml,将:
1 | < player id = "FlashPlayer10" version = "10" asversion = "3" > |
2 | < name >Flash Player 10</ name > |
1 | < player id = "FlashPlayer11_0_1" version = "13" asversion = "3" > |
2 | < name >Flash Player 11_0_1</ name > |
将:
1 | as3="$(AppConfig)/ActionScript 3.0/FP10/playerglobal.swc" |
1 | as3="$(AppConfig)/ActionScript 3.0/FP11_0_1/playerglobal11_0_1.swc" |
① 打开 Flash CS5,新建一个 ActionScript 3.0 类,命名为 DebugInfo.as,键入下面代码:
package {
import flash.display.Sprite;
import flash.display.Stage3D;
import flash.display3D.Context3D;
import flash.display3D.Context3DRenderMode;
import flash.events.Event;
import flash.system.Capabilities;
import flash.text.TextField;
public class DebugInfo extends Sprite {
private var tf:TextField = new TextField();
public function DebugInfo() {
tf.autoSize = "left";
stage.addChild(tf);
trace("Flash Player version : " + Capabilities.version);//播放器版本
tf.appendText("Flash Player version : " + Capabilities.version)
var stage3D:Stage3D = stage.stage3Ds[0];
stage3D.addEventListener(Event.CONTEXT3D_CREATE, on_3d);
stage3D.requestContext3D(Context3DRenderMode.AUTO);
}
private function on_3d(e:Event):void {
var context3D:Context3D = Stage3D(e.target).context3D;
trace("3D dirver : " + context3D.driverInfo);//加速方式
tf.appendText("\n3D dirver : " + context3D.driverInfo);
}
}
}
② 新建一个 ActionScript 3.0 文档,可命名为 Alternativa3D_8.fla,文档类指定为 DebugInfo。
菜单栏->文件->发布设置->Flash->播放器版本(快捷键:Ctrl+Shift+F12),选择 Flash Player 11_0_1选项。
③ 菜单栏->调试->调试影片->调试(快捷键:Ctrl+Shift+Enter),如果输出
Flash Player version : WIN 11,0,1,152
3D dirver : DirectX9 (Direct blitting)
说明已配置正确。
PS:如果配置过程没错,但输出的是
Flash Player version : WIN 11,0,1,152 |
3D dirver : Software (Direct blitting) |
可以尝试升级下显卡驱动,原先我也因为显卡驱动没更新而出现上面这种情况,更新后就好了。更新之前建议备份旧驱动,有备无患。
5. 调试 Alternativa3D 8 程序:
① 在 Alternativa3D_8.fla 中,菜单栏->文件->ActionScript 设置->库路径,点击+按钮,再点击f按钮,指定 Alternativa3D.swc 路径:
package {
import alternativa.engine3d.controllers.SimpleObjectController;
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3D;
import alternativa.engine3d.core.Resource;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Box;
import flash.display.Sprite;
import flash.display.Stage3D;
import flash.events.Event;
[SWF(width=800, height=600)]
public class HelloBox extends Sprite {
private var stage3D:Stage3D;
private var camera:Camera3D;
private var rootContainer:Object3D;
private var controller:SimpleObjectController;
private var box:Box;
public function HelloBox() {
camera = new Camera3D(0.01, 10000000000);
camera.x = -50;
camera.y = -300;
camera.z = 100;
controller = new SimpleObjectController(stage, camera, 200);
controller.lookAtXYZ(0,0,0);
camera.view = new View(800, 600, false, 0xFFFFFF, 0, 4);
addChild(camera.view);
rootContainer = new Object3D();
rootContainer.addChild(camera);
box = new Box();
box.setMaterialToAllSurfaces(new FillMaterial(0x0));
rootContainer.addChild(box);
stage3D = stage.stage3Ds[0];
stage3D.addEventListener(Event.CONTEXT3D_CREATE, init);
stage3D.requestContext3D();
}
private function init(event:Event):void {
for each (var resource:Resource in rootContainer.getResources(true)) {
resource.upload(stage3D.context3D);
}
addEventListener(Event.ENTER_FRAME, enterFrameHandler)
}
private function enterFrameHandler(event:Event):void {
controller.update();
camera.render(stage3D);
}
}
}
③ 将 Alternativa3D_8.fla 的文档类改为 HelloBox,菜单栏->调试->调试影片->调试,如果可以看到一个黑色的立方体,说明 Alternativa3D 8 的配置正确了:
--------------------------------------------------------------------
实现Adobe AIR 3预发布支持
1. 下载AIR 3.0 预发布版本, 首先你需要预发布版的Adobe AIR 3 SDK。
2. 解压你下载的AIR SDK,如果你用的是Mac机, 文件名应该是" air3_rc1_sdk_mac_090611.tbz2"
3. 关闭Flash Professional CS5.5, 打开AIR 2.6文件夹, 如果是Mac,应该是这个路径"/Applications/Adobe Flash CS5.5"
4. 把AIR2.6文件夹重命名为:如AIR2.6_old
5. 把你刚才你解压好的AIR sdK文件夹命名为AIR2.6, 然后把它放置在Flash Professional CS5.5目录下,即"/Applications/Adobe Flash CS5.5"
6. 打开文件夹AIR2.6/frameworks/libs/air/, 拷贝airglobal.swc。
7. 打来目录"/Applications/Adobe Flash CS5.5/Common/Configuration/ActionScript 3.0/AIR2.6" , 用拷贝了airglobal.swc覆盖该文件夹下的airglobal.swc。
8. 打开目录"/Applications/Adobe Flash CS5.5/Common/Configuration/Players", 用你的文本编辑工具打开这几个文件:AdobeAIR2_6.xml, AiriPhone.xml和Android.xml.
9. 把这3个文件里的version 属性均由原来的11改成13:
Android xml:
- <player id="android_0" version="13" asversion="3" minasversion="3"></player>
- <player id="PFI1_0" version="13" asversion="3" minasversion="3"></player>
- <player id="AdobeAIR2_6" version="13" asversion="3" minasversion="3"></player>
11. 修改命名空间 "http://ns.adobe.com/air/application/2.6" 为"http://ns.adobe.com/air/application/3.0".
12. 保存该文件, 然后打开flash。
------------------------------------------------------------
测试环节
这里有2个方法可以快速验证你的Flash CS5.5是否已具备Flash PLayer 11和AIR 3.0 预发布支持。
测试Flash Player 11:
1. 打开Flash IDE, 选择菜单 File > New > ActionScript 3.0, 创建一个新的flash文档, 在播放器部分你会看到"Flash Player 11_RC1" ,选择它作为该文档对应的播放器版本。
2. 选中第一帧, 在菜单Window > Actions 打开代码编辑窗体, 并写入下面代码;
- import flash.display.Stage3D;
- var stage3d = new Stage3D();
- var my_fmt:TextFormat = new TextFormat();
- my_fmt.color = 0xFF0000;
- my_fmt.size = 32;
- my_fmt.bold = true;
- my_fmt.font = "Arial";
- var textF: TextField = new TextField;
- textF.defaultTextFormat = my_fmt;
- textF.autoSize = TextFieldAutoSize.LEFT;
- textF.text = "Hello Flash Player: " + Capabilities.version + "\n" + stage3d;
- addChild(textF);
3. 按Command + F12, 把工程发布在浏览器下运行, 你应该会看到你的swf显示Flash版本和Stage3D 对象
测试AIR 3.0:
1. 打开Flash IDE, 点击菜单 File > New > AIR, 创建一个Flash for AIR 工程,然后再Player区域选择你看到的"AIR 2.6"版本。
2. 选中第一帧, 在菜单Window > Actions 打开代码编辑窗体, 并写入下面代码;
- import flash.display.Stage3D;
- import flash.desktop.NativeApplication;
- import flash.text.TextField;
- function air3_test(){
- var stage3d = new Stage3D();
- var my_fmt:TextFormat = new TextFormat();
- my_fmt.color = 0xFF0000;
- my_fmt.size = 32;
- my_fmt.bold = true;
- my_fmt.font = "Arial";
- var textF: TextField = new TextField;
- textF.defaultTextFormat = my_fmt;
- textF.autoSize = TextFieldAutoSize.LEFT;
- textF.text = "Hello AIR Version No. " + NativeApplication.nativeApplication.runtimeVersion +"\n" + stage3d;
- addChild(textF);
- trace ( "+ Flash CS5.5.air3_test() - args: " + [stage3d,"AIR Version: " + NativeApplication.nativeApplication.runtimeVersion ] );
- }
- air3_test();
3. 选择菜单 Debug > Debug Movie > in AIR Debug Launcher(Desktop)来运行工程, 如果一切ok, 你就会看到如下界面显示Air版本和Stage3D对象。