我正在开发一个大量使用 Tweener 类的 UI,它还加载了一个我相信也使用 Tweener 类的外部 .swf。
在追踪各种错误行为之后,我认为问题在于加载的 .swf 正在调用 Tweener.removeAllTweens() ***(这只是一个假设)并停止我的用户界面。
这是否可能,如果可以,是否可以隔离 Tweener 类的两个版本,使它们不引用同一个对象?
谢谢 :)
我正在开发一个大量使用 Tweener 类的 UI,它还加载了一个我相信也使用 Tweener 类的外部 .swf。
在追踪各种错误行为之后,我认为问题在于加载的 .swf 正在调用 Tweener.removeAllTweens() ***(这只是一个假设)并停止我的用户界面。
这是否可能,如果可以,是否可以隔离 Tweener 类的两个版本,使它们不引用同一个对象?
谢谢 :)
是的,它被称为应用程序域。它就像一个单独的内存空间来加载外部 SWF。这里有一篇不错的文章。
您可以尝试将 LoaderContext 与不同的 ApplicationDomain 一起使用。
加载外部 SWF 时,您可以将加载的 SWF 定义*与主 SWF共享、覆盖它们,或者将它们完全隔离。您将这些定义放入称为 ApplicationDomain 的东西中。
**读取类,包括标记为在库中导出的图形资产。*
您感兴趣的设置如下:您加载的 SWF 域与您的主域隔离,并保留其自己的类定义。
var 单独定义:LoaderContext = new LoaderContext(); 单独定义.applicationDomain = new ApplicationDomain(); var myLoader: Loader = new Loader(); var request:URLRequest = new URLRequest("OtherSWF.swf"); myLoader.load(请求,单独定义);