在flash cs5.5中配置flashplayer11 AIR3 Alternativa3D 8

這是我親自測試了很多文章的方法後,對測試成功的文章進行的拼接,希望能對大家有幫助!

如有版權問題,請立即聯繫我,我將馬上刪除。


相關下載
Flash播放器:FlashPlayerDebugger.exe
playerglobal:playerglobal.swc
AS3 3D框架:Alternativa3D 8
相關文件打包下載(debug播放器+playerglobal.swc+FlashPlayer11_0_1.xml+DebugInfo.as):

FlashCS5中的FP11配置.rar配置

下面的配置測試文件我也寫了一遍,上傳了,大家想測試是否可用下載:

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文件夾需自行創建)

3. Flash CS5安裝目錄\Common\Configuration\Players 中找到FlashPlayer10_1.xml,複製一份並重命名爲FlashPlayer11_0_1.xml

用記事本打開 FlashPlayer11_0_1.xml,將:
1 <playerid="FlashPlayer10"version="10"asversion="3">
2 <name>Flash Player 10</name>
改爲:
1 <playerid="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"
4. 完成上面三步就算配置好了,下面來測試下 Flash Player 11 的配置是否成功。

① 打開 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 路徑:

② 新建一個 ActionScript 3.0 類,命名爲 HelloBox.as,鍵入下面代碼:
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>
複製代碼
AiriPhone xml:
  • <player id="PFI1_0" version="13" asversion="3" minasversion="3"></player>
複製代碼
AdobeAIR2_6 xm:
  • <player id="AdobeAIR2_6" version="13" asversion="3" minasversion="3"></player>
複製代碼
10. 打開目錄"/Applications/Adobe Flash CS5.5/AIR2.6/samples/", 找到descriptor-sample.xml 並打開它。


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);
複製代碼
這裏我們導入一個只有Flash Player 11以後纔有的類"Stage3D" , 同時我們創建了一個文本框顯示在瀏覽器下運行的Flash運行時的版本。

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();
複製代碼
這裏我們導入一個只有Flash Player 11以後纔有的類"Stage3D" , 同時我們創建了一個文本框顯示通過NativeApplication類得到的Flash運行時的版本。

3. 選擇菜單 Debug > Debug Movie > in AIR Debug Launcher(Desktop)來運行工程, 如果一切ok, 你就會看到如下界面顯示Air版本和Stage3D對象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章