用FlashCS3开发透明的AIR(Apollo)应用

该方法适用于所有不习惯Flex或者暂时不希望介入Flex Builder2、3开发的开发人员。转载请保留出处:用FlashCS3开发透明的AIR(Apollo)应用 – http://www.awflasher.com/blog/archives/947

【更新】开发步骤详细截图(共19张)我发布在as3blog.com了:忘记MXML,用CS3携Apollo起飞!(http://as3blog.com/as3/cs3-develop-air)

虽然我们并不使用Flex3作为开发环境,但我们需要准备Flex3和Flex3 SDK,这可以在Adobe官方找到。其缘由是,我们需要用Flex3作为AIR文件的发布工具,而Flex3 SDK,可以为我们提供一个非常重要的swc文件:airglobal.swc。我们需要采用这个ariglobal.swc的文件,替换Flash CS3安装目录中的“enConfigurationActionScript 3.0Classesplayerglobal.swc”,这一步非常重要。因为我们需要让FlashCS3的编译器知道,AIR的Runtime所提供的API。否则,在FlashCS3中所有对AIR的API调用将是不能通过编译器编译,进而无法生成SWF文件的。

然后,我们回到Flex Builder3中。建立一个AIR项目,并且修改AIR项目的配置xml文件(你的AIR项目如果是MyAir那么你的AIR配置xml文件将是MyAir-app.xml),找到rootContent结点,例如我的项目叫做“awflasher”,那么在xml文件中,会有如此一段内容:

<rootContent systemChrome="none"transparent="true" visible="true">awflasher.swf</rootContent>

这其中的“awflasher.swf”就是我们通过Flash CS3编译得到的。回过头我再解释一下为什么要copy那个airglobal.swc覆盖playerglobal.swc,是因为,我们在Flash CS3中,可能会有如下的代码:

awflasher_mc.addEventListener(flash.events.MouseEvent.MOUSE_DOWN, go);function go(someEvent)
{
stage.window.startMove();
}

其中的stage.window.startMove中,无论是window对象还是startMove方法,都需要AIR的API提供支持。虽然AIR Runtime显然会提供支持,但是Flash CS3的编译器在之前的playerglobal.swc中是无法辨别这些API的。因此才需要刚才说到的那一步。

后附实际运行截图以及AIR文件如下:

效果图1:
Adobe AIR

效果图2:
Adobe AIR

AIR文件+源文件:http://aw.awflasher.com/air/awflasher.helloair.rar

Advertisements

7 thoughts on “用FlashCS3开发透明的AIR(Apollo)应用

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s