从父swf卸载swf

时间:2010-09-23 00:38:04

标签: flash actionscript-3 swfloader

所以我把swf加载到另一个swf中就像这样

correctURL是我的外部swf变量

function startLoad(){

var mRequest:URLRequest = new URLRequest(correctURL.toString());
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
mLoader.load(mRequest);

}

function onCompleteHandler(loadEvent:Event) {

    var gmc:MovieClip = new MovieClip();
    gmc.x = 266;
    gmc.y = 67;
    addChild(gmc);
    gmc.addChild(loadEvent.currentTarget.loader); 

}

但是当我想用另一个瑞士法郎替换它时,我正在努力卸下那该死的东西。

我正在尝试的代码就是这个

function closeAllStreams(e:Event){

    e.currentTarget.loader.unloadAndStop();
    gmc = null;
    gmc.removeChild(e.currentTarget.loader);
    trace("unloaded");

}

mLoader.contentLoaderInfo.addEventListener(Event.UNLOAD,closeAllStreams);

我只是没有运气,因为我仍然可以听到顶部的旧声音。

我不想访问加载的swf的变量,或者我只是欺骗哈哈。

由于

2 个答案:

答案 0 :(得分:0)

无论如何这是一个问题:

gmc = null; 
gmc.removeChild(e.currentTarget.loader); 

我需要解释原因吗

答案 1 :(得分:0)

嗯,unloadAndStop()只适用于Flash-Player 10,然后你不需要为loader引用分配null,这个方法就可以了。您的closeAllStreams方法将在此语句之后调用

e.currentTarget.loader.unloadAndStop(); 要么 e.currentTarget.loader.unload();

所以最好不要在unload Event调度程序中调用它,即在你的情况下调用closeAllStreams。