FlashDevelop - 在iOS上加载外部swfs

时间:2013-09-30 12:53:20

标签: ios actionscript-3 flash air flashdevelop

我的应用程序需要使用ABC加载外部swfs。我检查过AIR 3.7及更高版本中是否提供此功能。我设法使用最新版本的FD(4.4.3)获得新的SDK - 3.8。

现在我关注此链接:http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air-apps-on-ios/

根据这篇文章,“在IPA打包期间,ADT从所有子SWF中提取ABC代码,将其添加到最终可执行文件中,并在当前工作目录中创建的”externalStrippedSwfs“文件夹中生成剥离的SWF。 “externalStrippedSwfs”文件夹保持与文本文件中指定的相同。生成的剥离SWF应该由开发人员选择的Web服务器外部托管。“

但是,首先,我找不到任何名为“externalStrippedSwfs”的文件夹。

其次,即使这有效,这意味着每次我有一个新的外部swf加载,我将不得不从代码中删除它,把它放在主SWF中,然后上传剥离的swf(带资产)。因此,每次我这样做,我都需要将我的应用程序“重新上传”给Apple。

这些假设是对的吗?我的应用程序架构需要相应修改。

2 个答案:

答案 0 :(得分:2)

是的,您的假设是正确的:您无法加载包含AS3的外部.swf并让应用程序执行字节代码。

如果我们忽略了它很可能不被Apple批准的事实,它在技术上无法奏效。原因是因为Adobe AIR应用程序不包含能够解释.swf中字节代码的虚拟机:

  

为iOS构建应用程序时,没有解释代码   在你的最终二进制文件中没有运行时你的申请真的是一个   原生iOS应用。

来源:http://www.adobe.com/devnet/logged_in/abansod_iphone.html

答案 1 :(得分:0)

你可以做到! :)您只需要升级到AIR SDK3.8 +并按照痛苦的过程进行操作。 唯一的限制是,您将在运行时加载的每个外部swif必须由您的ADT剥离。 但你是对的:每当你的外部内容需要更新时,你需要更新你的应用程序。

“externalStrippedSwfs”是任意的(根据您的意愿命名),您必须在bin中创建该文件夹并从那里运行命令行。

看起来Apple尚未准备好失去皮带......