当使用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)。

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

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

当为你的iOS游戏开发使用本文列出的技术时,你需要在运行时例示新级别,而不是动态地对其进行加载。 记住,虽然在iOS上能够加载SWF文件,然而,其中的代码却不能转换。 用这种方法加载SWF文件对于图像组件,例如动画或矢量图形,是非常有用的。 你可以创建包含大量符号的库,然后选择你希望使用的符号。
最后,注意该技术只能用于ActionScript 3,而不能用于ActionScript 2。
More Like This
- Flash glossary: SWFObject 2
- Flash glossary: Device font
- Flash glossary: Object tag parameter
- Flash glossary: SWF
- Flash glossary: Flash detection
- Flash glossary: Accessibility
- 专为多设备、多分辨率应用而设计
- 将多个 SWF 文件合并为一个 SWF 以进行 iOS 部署
- Blitting and caching movie clips in Flash
- Creating a simple document in Flash CS4 Professional