1

我正在从一个主 swf 加载/卸载多个 swf。当我加载一个新的 swf 时,我会这样做:

contentContainer.addChild(the new swf); //add the new swf
contentContainer.swapChildrenAt(0,1);
contentContainer.removeChildAt(1); //remove the previous swf

我的问题是,当我 removeChildAt() 时,旧 swf 是否继续“播放”并继续占用 cpu 资源?我怎样才能完全杀死它?如果旧版 swf 中有音频或视频,即使删除后它似乎仍在播放。

4

2 回答 2

1

尝试使用Loader.unloadAndStop()

于 2009-09-07T08:25:30.293 回答
0

您可能想尝试以下方法:

var mc:MovieClip = contentContainer.removeChildAt(1) as MovieClip;
mc.stop();

或者对嵌入在卸载的 swf 中的电影制作一些公共 stop() 方法。(参考

您可能需要对此进行一些更改。

此外,如果可以,您还可以让子 swfs 监听Event.ADDED_TO_STAGE,Event.REMOVED_FROM_STAGE事件。从这个意义上说,让它们控制自己而不是依靠父容器来阻止它们可能更有意义。

于 2009-09-07T07:34:32.817 回答