如有版權問題,請立即聯繫我,我將馬上刪除。
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對象。