我一直在努力寻找一种方法,我已经尝试过很多没有用过的代码示例。
这是我在我的主.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);
}
答案 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
}