将多个 SWF 文件合并为一个 SWF 以进行 iOS 部署
来源:互联网 发布:天宝广电网络的宽带 编辑:程序博客网 时间:2024/06/11 13:00
http://www.adobe.com/cn/devnet/flash/articles/join-multiple-swf-files.html
要求
必备知识
本文专为熟悉 Flash Builder 或 Flash Professional 的高级开发人员编写。您还需要了解 Mac OS X 或 Windows 命令行的使用方法。
其他必要产品
- REBOL/View
用户级别
高级
必需产品
- Flash Professional (下载试用版)
- Flash Builder (下载试用版)
范例文件
- rswf-join-example.zip
在 Flash 平台上进行游戏开发经常遇到的其中一个问题是,如何将构成游戏的大量 SWF 合并成为一个 SWF,从而方便进行 iOS 部署。例如,Machinarium(一种由 Amanita Design 开发的点击式益智游戏)包含 28 个 SWF 文件。当 Amanita Design 使用 Adobe AIR 生成 iPad 版本的 Machinarium 时,他们需要设法将多个 SWF 文件加入一个 SWF 文件(参见图 1)。
在文章使用 SWC 文件构建具有多个 iOS SWF 文件的大型 Flash 和 AIR 项目中,我介绍了一种依赖 SWC 库的技术来解决这一问题。但是,在某些情况下,您或许更喜欢使用 SWF,而不是 SWC 文件。例如,如果您的游戏将在 Android 及 iOS 上运行,使用 SWF 工作流程可能会更加简单。请记住,在 Android 上,您可以于运行时加载 SWF 文件,从而实现内存有效使用。而在 iOS 上,您仍然要时刻关注内存使用,特别是在您将所有代码纳入一个 SWF 的情况下。将所有不包含 ActionScript(包括图片、视频和音乐)的资产分解成 SWF 文件也是一种有效做法,这样您的游戏就能按需加载,随后于不再需要时予以丢弃。
分离资产后,您仍然需要设法加入确实包含 ActionScript 的 SWF。在本文中,我介绍的这项技术由 David "Oldes" Oliva(Machinarium 首席开发员)使用,用以利用 REBOL 脚本组合 SWF。有关 REBOL 的更多信息,请访问 http://www.rebol.com。
将多个 SWF 文件合并为一个 SWF 文件的步骤
请按照以下步骤加入 SWF 文件,准备在 iOS 上部署您的游戏:
- 第一步是像往常一样在 Flash Professional 或 Flash Builder 中构建 SWF,但将各 SWF 转换为类。无需通过 Loader 类、SWFLoader 或类似机制动态加载 SWF,而是实例化 SWF 类。一旦您合并所有 SWF,将会实例化自身内容,而不是加载它们。
- 下载并解压本文提供的示例文件 。
- 下载并安装REBOL/View和图形版本的 REBOL。
- 导航至示例文件夹,找到您可能需要更新以自定义自身工作流程的三个脚本:compile-and-run.r、Game.bat 和 Game.rswf。
- 如有兴趣,您可以在文本编辑器中深入了解 compile-and-run.r 文件。这是一个 REBOL 脚本,用以执行一些初步设置及运行 Game.bat。
- 在文本编辑器中打开 Game.bat,编辑 AIR SDK 路径,以便使其指向您安装的 AIR Debug Launcher (ADL) 版本。该文件包含以下代码行:
cd ./public/adl Game.xml
将它们更改如下:
cd ./public/[/path/to/your/AIR_SDK]/bin/adl Game.xml
- 在文本编辑器中打开 Game.rswf,更新
import-swf
行以反映您要合并的 SWF。初始示例加入了四个 SWF 文件:
import-swf %assets/Preloader.swf no showimport-swf %assets/ExampleLevel1.swf no showimport-swf %assets/ExampleLevel2.swf no showimport-swf %assets/ExampleMain.swf no show
- 运行 REBOL 脚本。(将下面的
rebol
命令路径更改为其安装位置。)
/path/to/REBOL/rebol compile-and-run.r
注意:如果您在尝试运行任何可执行文件时看到权限拒绝错误,请确保这些文件具有适当的权限设置。例如,您可以使用 chmod
设置权限(用更加严格的设置替代 755
或 775
):
chmod 777 filename.bat
- 当完成该脚本后,SWF 将在 Flash Player 中打开,您可以使用 AIR SDK 中包含的
adt
工具编译最终的 iOS IPA 文件。例如,您可以在命令行运行以下代码,酌情替换括号内的部分内容:
[AIRSDK]/bin/adt -package -target ipa-app-store -provisioning-profile [YOURPROFILE].mobileprovision -storetype pkcs12 -keystore [YOURCERTIFICATE].p12 -storepass [CERTIFICATE_PASSWORD] [FINALAPP].ipa air-app-descriptor.xml [SWFTOCOMPILE].swf
下一步阅读方向
如果您认为 SWC 方法能够更好地满足您的需求,请参见我的文章使用 SWC 文件构建具有多个 iOS SWF 文件的大型 Flash 和 AIR 项目。要了解有关 REBOL 的更多信息,请参阅REBOL 快速入门。如果您对 Rebol/Flash Dialect (RSWF) 的主要规则感兴趣,Oldes 已在这里已在这里对它们进行了记录整理。最后,如果您想了解小型独立游戏开发工作室如何利用 Flash Platform,请访问 Amanita Design。
+
本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可。Adobe 提供超出该许可范围、与本产品包含的代码示例相关的权限。
- 将多个 SWF 文件合并为一个 SWF 以进行 iOS 部署
- 用WINRAR将多个SWF文件压缩成一个EXE文件
- swf
- swf
- AIR 打包SWF为APK文件
- 将office文件转化为swf
- doc、pdf转换为swf文件预览
- 预加载一个SWF文件详解
- word转化为swf
- SWF文件格式说明书--SWF文件头
- SWF文件格式说明书--SWF文件结构
- SWF文件格式说明书--SWF文件头
- 如何使用SWFTools 命令 将pdf文件转换为swf文件,并进行在线浏览该pdf文件
- 一个排序的swf
- 加载一个swf,
- swf文件结构解析
- swf文件结构解析
- swf文件结构解析
- VM redhat6.4 yum
- 存储系统文章汇总
- nutch使用攻略bate版
- FatJar插件介绍、安装步骤
- Oracle9iClient简化版的安装与tnsnames配置,sqlplus的连接
- 将多个 SWF 文件合并为一个 SWF 以进行 iOS 部署
- 【iOS多线程】Mac&iOS之多线程
- awk
- unity3d ios android pc path
- linux常用命令
- 采用pull解析xml文件
- 如何从sun公司官网下载java API文档
- eclipse pydev 接收命令行参数
- .dll,.lib,.def 和 .exp文件