在动作脚本3中卸载外部.swf

时间:2014-03-16 21:28:36

标签: actionscript-3 flash

我一直在努力寻找一种方法,我已经尝试过很多没有用过的代码示例。

这是我在我的主.SWF文件中使用的代码,用于加载名为(Stage4.swf)的外部.swf文件。如何在Stage4.swf文件中加载此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);
}

1 个答案:

答案 0 :(得分:0)

您应该让子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
}