Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在操作脚本3中卸载自身内部的外部.swf_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 在操作脚本3中卸载自身内部的外部.swf

Actionscript 3 在操作脚本3中卸载自身内部的外部.swf,actionscript-3,flash,Actionscript 3,Flash,我一直在尝试寻找一种方法,我尝试了许多代码示例,但都没有成功 这是我在main.SWF文件中用来加载名为(Stage4.SWF)的外部.SWF文件的代码。在Stage4.swf文件中加载此swf文件时,如何卸载此swf文件 var child_loader:Loader = new Loader(); addChild(child_loader); var url:URLRequest = new URLRequest("Stage4.swf"); child_loader.load(url);

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

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

您应该使子SWF分派一个自定义
事件,该事件将由其父级侦听。您的代码片段很可能无法工作,因为堆栈包含子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
}