2014-10-06 15 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從混合中取出,並且您可能會看到不同的錯誤。

奇怪的是,之後的幾毫秒改變...