与Loader的domainMemory问题

时间:2014-12-14 17:18:32

标签: actionscript-3 flash flex air

我是ActionScript开发的新手,我尝试使用Loader加载外部SWF。

外部SWF(我称之为SWF1)也使用Loader加载另一个外部SWF(我称之为SWF2)。
SWF2使用血腥加密库的base64。因此,它使用DomainMemory来提高速度(如果我理解正确的话)。

但是,DomainMemory显然会引起一些问题,我不知道它来自哪里 我在Windows下使用FlashDevelop和Flex 4.6.0 + AIR 15.0 SDK。

这是抛出的错误:

  

ReferenceError:错误#1069:在flash.system.ApplicationDomain上找不到属性domainMemory,并且没有默认值。

     
    

at by.blooddy.crypto :: Base64 $ / decode()
    在MethodInfo-6()

  

这是用于加载SWF1的代码部分,如果有帮助的话。

var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain));
loaderContext.allowCodeImport = true;
loader.loadBytes(content, loaderContext);

我在Google上对这样的问题进行了一些研究,但没有发现任何问题。看起来我是唯一一个遇到过这个错误的人,真的很奇怪。

有人知道可能导致该问题的原因吗? 如果您还有其他问题,请询问。

提前致谢:)

1 个答案:

答案 0 :(得分:0)

由于您说您不熟悉 AS3 ,因此您的主要代码可能会遗漏:

import flash.system.ApplicationDomain;

我没有使用 Flex ,但我想这一切都在<mx: script>标签内..

<mx:Script>

    import flash.system.ApplicationDomain;

    //along with your other class imports here

    //rest of AS3 code here

</mx:Script>


如果失败,请尝试将其设置为此类(劫持: this example

var AD:ApplicationDomain = ApplicationDomain.currentDomain;
var context:LoaderContext = new LoaderContext( false, AD );
var loader:Loader = new Loader();
loader.loadBytes( data, context );