actionscript 3-在操作脚本3中卸载外部.swf



我一直在努力寻找一个方法,我尝试了许多代码示例,但都没有成功。

这是我在我的主.SWF文件中用来加载名为(Stage4.SWF(的外部.SWF文件的代码。当这个SWF文件在Stage4.SWF文件内加载时,如何卸载它?

var child_loader:Loader = new Loader();
addChild(child_loader);
var url:URLRequest = new URLRequest("Stage4.swf");
child_loader.load(url);
child_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, load_completed);
child_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, on_progress);
function load_completed(e:Event):void {
child_loader.x = 0;
child_loader.y = 0;
}
function on_progress(e:ProgressEvent):void {
trace(e.bytesLoaded + " out of " + e.bytesTotal);
}

您应该让子SWF调度一个将由其父级侦听的自定义Event。很可能您的代码片段不起作用,因为堆栈包含子SWF的代码。类似这样的东西:

public static const UNLOAD_SWF:String='unload_swf';
...
function load_completed(e:Event):void {
    this.addEventListener(UNLOAD_SWF,doUnload);
    // rest of code
}
function doUnload(e:Event):void {
    removeEventListener(UNLOAD_SWF,doUnload);
    addEventListener(Event.ENTER_FRAME,unloadNow);
}
function unloadNow(e:Event):void {
    removeEventListener(Event.ENTER_FRAME,unloadNow);
    child_loader.unloadAndStop(); // should work now
}

最新更新