【问题标题】:Unloading an external .swf within itself in action script 3在动作脚本 3 中卸载自身内部的外部 .swf
【发布时间】:2014-03-16 21:28:36
【问题描述】:

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

这是我在主 .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);
}

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    您应该让子 SWF 发送一个自定义的 Event,它会被其父级监听。很可能您的代码 sn-ps 不起作用,因为堆栈包含子 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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 2016-03-13
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多