0

所以我像这样将一个 swf 加载到另一个 swf

正确的 URL 是我的外部 swf 变量

函数启动加载(){

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

}

函数 onCompleteHandler(loadEvent:Event) {

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

}

但是当我想用另一个 swf 替换它时,我正在努力卸载该死的东西。

我正在尝试的代码是这个

函数 closeAllStreams(e:Event) {

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

}

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

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

我也不想访问加载的 swf 的变量,或者我只是作弊哈哈。

谢谢

4

2 回答 2

0

Well this is a problem anyway:

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

Do I need to explain why

于 2010-09-23T01:06:23.967 回答
0

好吧,unloadAndStop() 仅适用于 Flash-Player 10,然后您无需将 null 分配给加载程序引用,此方法本身即可。您的 closeAllStreams 方法将在此语句之后调用

e.currentTarget.loader.unloadAndStop(); 或 e.currentTarget.loader.unload();

所以最好不要在卸载事件调度程序中调用它,即在你的情况下是 closeAllStreams 。

于 2010-09-23T09:37:27.150 回答