2014-10-06 55 views
0

我正在为iOS上的AIR编写应用程序。它使用Loader和loadBytes加载嵌入的SWF。这很好(我使用的是AIR> = 3.5文档中描述的LoaderContext)。AIR iOS多个应用程序域错误

但是,只要我包括我需要为我的应用程序的原生扩展,我开始得到这个熟悉的错误:

错误#3747:多个应用程序域不支持此操作系统上。

奇怪的是,在删除和重新添加本机扩展并从应用程序描述符XML中删除“扩展”节点后,我能够编译几次(尽管它在构建时自动重新插入,这似乎是重要)。但我再次得到错误,似乎无法复制该解决方法。

任何人都有解决方案/解决方法?我必须使用外部的SWF,我必须使用ANE。

任何帮助表示赞赏。

+0

ANE不应与ApplicationDomain的关注,但加载外部SWF必须使用在IOS上设置为相同应用程序域的lodercontext来完成。 – BotMaster 2014-10-07 03:37:20

+0

我同意ANE不应该影响应用程序域。但似乎。而且,如前所述,我正在使用一个LoaderContext(如果没有这个,它将不会起作用)。 – solidgoldrobot 2014-10-07 14:08:04

+0

因此,我切换到通过Loader.load方法(使用LoaderContext for ApplicationDomain)加载的打包SWF,与通过Loader.loadBytes加载的嵌入式SWF相反,这使得它再次运行......一会儿。然后我添加了另一个我需要的ANE,并再次打破。所以,我切换回loadBytes。没有骰子。不知道为什么它暂时开始工作... – solidgoldrobot 2014-10-07 17:16:57

回答

0

好的,解决了。

My Loader在延迟后正在启动:setTimeout(loader.load,delay);

延迟掩盖了真正的错误,这是因为在加载的SWF中有Actionscript(iOS上不允许)。我有应用程序设置正确(都与loadBytes和负载),我只是错过了在这个特殊的SWF的一些代码。

因此,对于任何使用setTimeout和LoaderContext但仍然出现这些错误的人,请将setTimeout从混合中取出,并且您可能会看到不同的错误。

奇怪的是,之后的几毫秒改变...