使用SWC文件建立具有多个iOS SWF文件的大型Flash和AIR项目

当使用Adobe AIR为Android或Blackberry Tablet OS开发游戏时,你可以在运行时在线添加SWF文件,然而,当使用AIR为iOS开发游戏时,却没有这一选项。 在Android或Blackberry Tablet OS上,相应的代码是由ActionScript字节码转换而来的,然而,对于iOS来说,所有的代码必须作为单一的IPA文件从ActionScript字节码编译成本地字节码,而该IPA文件只能从单一的SWF创建而来。

如果你的游戏含有数十个级别,并且每一级均是一个SWF文件,那么,为iOS编译可能会成为一个挑战。 当你处于游戏编程和开发的测试阶段时,你可以在编译器设置中使用ipa-test-interpreter开关,并且你的游戏的运行方式与在Android或BlackBerry Tablet OS上相同。 但是,Apple不接受在App Store中使用该方法建立的游戏,因此,对于你的发布版本(release build)而言,你需要使用其它不同的方法。

其中一个解决方案是将每一级均编译至一个 SWC 库中,然后,将所有的SWC链接至一个单一的SWF文件中(参见图1)。

图1. 对于iOS来说,首先编译SWC,然后将它们链接在一起以便创建单一的SWF文件
图1. 对于iOS来说,首先编译SWC,然后将它们链接在一起以便创建单一的SWF文件

从SWC创建单一的SWF

如果你正在使用Flash Builder,那么你需要使用能够输出SWC文件的Flex Library Project(参见图2),而不是能够输出SWF文件的ActionScript项目。

图2. 选中能够创建SWC文件的Flex Library Project
图2. 选中能够创建SWC文件的Flex Library Project

在Flash Professional CS5.5中,你可以在Publish Settings对话框中使用某一选项生成SWC文件,而不是SWF文件(参见图3)。

图3. 在Publish Settings对话框的Publish选项下选中SWC文件
图3. 在Publish Settings对话框的Publish选项下选中SWC文件

下一步阅读方向

当为你的iOS游戏开发使用本文列出的技术时,你需要在运行时例示新级别,而不是动态地对其进行加载。 记住,虽然在iOS上能够加载SWF文件,然而,其中的代码却不能转换。 用这种方法加载SWF文件对于图像组件,例如动画或矢量图形,是非常有用的。 你可以创建包含大量符号的库,然后选择你希望使用的符号。

最后,注意该技术只能用于ActionScript 3,而不能用于ActionScript 2。

 
 
 
posted on 2013-09-05 07:52  猎妖手  阅读(580)  评论(0编辑  收藏  举报