问题将AS2 swf加载到AS3 swf中

时间:2010-04-19 16:38:38

标签: actionscript-3 actionscript-2 loader swfloader

我一直在努力让AS2 swf在AS3 swf中正确加载 - 但无济于事......

AS2文件(这是一个引用许多外部xml文件的相当大的应用程序等)在Flash Player中启动时效果很好。

当尝试通过AS3 swf加载相同的文件(使用URLRequest和Loader类)时,文件开始加载但在预加载阶段突然停止。 (如果我尝试使用AS2“loadMovie”加载它,也会发生同样的情况。)

更新:似乎swf实际上是通过AS2 loadMovie而不是AS3 Loader类加载的。

还有什么可以尝试的?安全设置,自定义加载器类 - 任何建议都表示赞赏。

4 个答案:

答案 0 :(得分:3)

另外请记住,加载到AS3 swf中的AS2 swf在与其父swf通信时会遇到问题,因此Loader会无法跟踪swf的加载 - 因此可能会导致问题。您应该构建在AS2中加载的swf,然后使用LocalConnection将其连接到AS3 swf。

答案 1 :(得分:1)

检查一下。

  1. 制作一个AS2容器,在第2帧中加载AS2 APP;
  2. 将容器加载到AS3动画。
  3. 通过LocalConnection进行这些通信。
  4. 将所有AS2 APP类导出到第2帧(在发布设置中)。

答案 2 :(得分:1)

在您的AS2代码中,请确保将lockroot(或者它是_lockroot?)设置为true。此外,如果您在任何地方的AS2代码中使用_level0,它将无法工作,您需要将其更改为_root。

答案 3 :(得分:1)

通常,您加载的电影必须设计为从其他swf加载。例如,任何初始化代码必须是Event.ADDED_TO_STAGE事件发生后的位置,并且对root的每个引用都不能按预期工作。例如,当swf单独运行时,元素的根是它的阶段,但是当swf从另一个swf加载到swf时,它是父swf,它的大小和位置可能会有所不同,这会给你带来麻烦。