0

我正在开发一个大量使用 Tweener 类的 UI,它还加载了一个我相信也使用 Tweener 类的外部 .swf。

在追踪各种错误行为之后,我认为问题在于加载的 .swf 正在调用 Tweener.removeAllTweens() ***(这只是一个假设)并停止我的用户界面。

这是否可能,如果可以,是否可以隔离 Tweener 类的两个版本,使它们不引用同一个对象?

谢谢 :)

4

2 回答 2

2

是的,它被称为应用程序域。它就像一个单独的内存空间来加载外部 SWF。这里有一篇不错的文章

于 2010-02-12T21:15:15.113 回答
2

您可以尝试将 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(请求,单独定义);

Senocular 在 kirupa 上解释了 LoaderContext 和 ApplicationDomain

于 2010-02-12T21:47:28.417 回答