AS3 调度 contentLoaderInfo

AS3 dispatching contentLoaderInfo

提问人:Dika Atmaj 提问时间:8/29/2023 最后编辑:Dika Atmaj 更新时间:9/9/2023 访问量:24

问:

我想知道如何调度外部 SWF 的 contentLoaderInfo 以在加载原始 swf 的其他帧上使用。它希望在时间轴中展开加载的 SWF 帧。

如果我在第 1 帧上加载 SWF,我希望在第 2 帧或第 3 帧等上控制它,而无需再重新加载它。

请帮忙

操作脚本-3

评论

0赞 Organis 8/30/2023
加载的内容不受帧控制。如果你的主时间轴上有 1000 帧,然后 addChild(...) 一个加载一些外部 SWFLoader 实例(实际上是由脚本创建且不受时间轴设计控制的任何对象),它将在所有 1000 帧中保持可见和可访问。但是,如果通过这 1000 帧将新对象附加到不存在的其他容器,则附加的内容将与其容器一起消失。
0赞 Dika Atmaj 8/31/2023
好吧,当加载的 swf 包含声音时,一旦离开它后重新进入 swf 帧,它总是会重新加载。它跟踪了多个声音(变大),因为我回到了 addChild 而没有 removeChild 离开它。
0赞 Dika Atmaj 8/31/2023
如果我按住该应用程序似乎很好。但它消耗的 CPU 内存越来越多,然后运行速度越来越慢。
0赞 Dika Atmaj 8/31/2023
我想加载一次以保持内存使用稳定
0赞 Organis 8/31/2023
然后加载一次,问题似乎是你没有检查你是否已经加载了这个东西,它一遍又一遍地加载。

答:

0赞 CausingUnderflowsEverywhere 9/9/2023 #1

在项目根目录中创建一个名为 Global.as 的 actionscript 文件,如下所示:

package {
    public class Global {
        public static var externalSWF:DisplayObject;
    }
}

在第 1 帧上,在顶部添加以下代码:

import Global;

稍后,在您拥有此 SWF 的加载程序时,添加此代码以将加载的 swf 保存到您创建的全局变量中。

Global.externalSWF = loader.content;

最后,在第 2 帧和第 3 帧中,您可以再次使用文件顶部的 import 语句来重用已加载的 SWF,然后像这样添加 Child:

import Global;

addChild(Global.externalSWF);