我正在开发一个大量使用Tweener类的UI,它还加载了一个外部.swf,我相信它也使用了Tweener类。
在追踪各种各样的bug行为之后,我认为问题在于加载的.swf正在调用Tweener.removeAllTweens()***(这只是一个假设)并停止其他补间发生在我的用户界面。
这是否可行,如果是这样,是否可以隔离Tweener类的两个版本,以便它们不引用同一个对象?
谢谢:)
答案 0 :(得分:2)
是的,它被称为应用程序域。它就像一个单独的内存空间来加载外部SWF。它上面有一个decent article here。
答案 1 :(得分:2)
您可以尝试将LoaderContext与其他ApplicationDomain一起使用。
加载外部SWF时,您可以将加载的SWF定义*与主SWF 共享,覆盖,或者您可以将它们完全隔离。您将此定义放入称为ApplicationDomain的内容中。
**读取类,包括标记为在库中导出的图形资源。*
您感兴趣的设置如下: 加载的SWF域与main隔离,并保留自己的类定义。
var separateDefinitions:LoaderContext = new LoaderContext(); separateDefinitions.applicationDomain = new ApplicationDomain(); var myLoader:Loader = new Loader(); VAR request:URLRequest = new URLRequest( “OtherSWF.swf”); myLoader.load(请求, separateDefinitions);
LoaderContext and ApplicationDomain explained by Senocular on kirupa