AIR iOS加载外部swf ABC-几乎成功

AIR iOS加载外部swf ABC-几乎成功,ios,actionscript-3,mobile,air,flash,Ios,Actionscript 3,Mobile,Air,Flash,我有一整天的搜索和测试,我官方认为这是不可能的。然而,我仍然可以分享我所取得的成就,并提出任何建议 所以我正在开发Flash Builder 4.7、AIR SDK 3.5和iPad3 iOS 6.0.1。 我想要的是有一个特别的应用程序来加载一个包含actionscript的swf文件并将其添加到stage。我首先在通过usb连接的设备上以调试模式测试应用程序。一切正常。然后,我编译了一个临时发布版本,但效果不是很好。图形已添加到后台,但actionscript未运行。我开始在网上搜索,发现可

我有一整天的搜索和测试,我官方认为这是不可能的。然而,我仍然可以分享我所取得的成就,并提出任何建议

所以我正在开发Flash Builder 4.7、AIR SDK 3.5和iPad3 iOS 6.0.1。 我想要的是有一个特别的应用程序来加载一个包含actionscript的swf文件并将其添加到stage。我首先在通过usb连接的设备上以调试模式测试应用程序。一切正常。然后,我编译了一个临时发布版本,但效果不是很好。图形已添加到后台,但actionscript未运行。我开始在网上搜索,发现可以加载包装在ipa中的swf,它可以运行actionscript,但现在已经没有了,尽管在“我在哪里可以获得构建”下有一个SDK版本

它不起作用。我将第二个swf包含在出口包装内容中。我做错了吗? 无论如何,即使它能工作,我真正需要的是能够从服务器下载swf,将其保存在存储目录中,然后将其加载到主应用程序


是否有一种方法可以告诉iOS它正在运行的应用程序是调试版本(实际上正在运行),但它不应该显示包含有关连接到调试器的信息的弹出窗口,而且它实际上应该像合法版本一样快速运行?

不幸的是,您无法从任何服务器加载任何代码来执行它。苹果公司禁止这样做。唯一可以从外部加载并在iOS上执行的代码是内置WebKit浏览器中的JavaScript(使用UIWebView或Air-StageWebView)


(仍处于测试阶段)您可以在应用程序中打包其他SWF,以便稍后使用Loader类加载,但是,与普通的web swf加载相比,此功能仍然受到严重限制-您只允许将代码加载到应用程序使用的同一应用程序域中,并且您不能卸载任何内容,因此使用swc库将所有代码静态链接到一个swf就更容易了,而且不必加载任何内容

我们发现,使用Flash Builder 4.7和AIR 3.6 SDK,在iOS中加载带有ABC代码的SWF不会出现任何问题。此时,Adobe Flash Builder 4.7附带了AIR 3.5 SDK,因此您可以从下载最新的SDK版本,并将其安装到Adobe Flash Builder的SDK文件夹中。

Hmm。。。调试时,是否出现安全沙盒冲突错误?您是从远程服务器还是从文件系统获取目标swf?这可能是域问题当调试时,我可以从服务器和文件系统加载swf。它是双向的,没有错误。在发布版本中,我将加载的swf域设置为当前域。除非已将外部swf预编译为本机代码,否则您不应该在iOS Adobe AIR中加载外部swf。我们已经尝试过(将所有swf加载到同一应用程序域中),但没有成功。SWF文件加载时没有出现错误,但是当我们调用
applicationDomain.hasDefinition(name)
时,对于我们知道(请参见Flash Professional CS5.5)存在的名称,
false
总是返回,并且
applicationDomain.getDefinition(name)
抛出错误(因为它没有名称)。这就是使用air 3.5 sdk或使用3.6 sdk加载外部主权财富基金时发生的情况。它在3.6中的工作方式是,当您打包应用程序时,编译器基本上会将每个附加swf中的所有字节码打包到主应用程序swf中。因此,即使在3.6版本中,运行时也不会加载任何代码。你能分享更多关于这方面的信息吗?我也想知道更多关于这方面的信息,请,你能分享一些信息吗?以及“可以做什么”?如问题所述,在IOS上加载带有ABC代码的外部主权财富基金?我已经分享了所有信息。我们唯一要做的就是升级我们的AIR SDK版本,它成功了。