【问题标题】:Unloading swf from parent swf从父 swf 卸载 swf
【发布时间】:2023-03-04 07:17:07
【问题描述】:

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

correctURL 是我的外部 swf 变量

函数 startLoad(){

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 替换它时,我正在努力卸载该死的东西。

我正在尝试的代码是这样的

function closeAllStreams(e:Event) {

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

}

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

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

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

谢谢

【问题讨论】:

    标签: flash actionscript-3 swfloader


    【解决方案1】:

    好吧,unloadAndStop() 仅适用于 Flash-Player 10,然后您不需要将 null 分配给加载程序引用,此方法会自行执行。您的 closeAllStreams 方法将在此语句之后调用

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

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

    【讨论】:

      【解决方案2】:

      这还是个问题:

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

      我需要解释为什么

      【讨论】:

      • 这通常是stackoverfow的想法是的;),除非它变成pointouttheissueanddontsolveit.com?? :)