在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对象。


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