【问题标题】:Unload child swf on last frame of child swf在子 swf 的最后一帧卸载子 swf
【发布时间】:2011-05-06 03:33:30
【问题描述】:

使用 AS3 我在我的代码中有一个按钮来停止和删除 swf,但我还想在它自动播放最后一帧时卸载一个子 swf - 使用按钮。

这是我在主时间线上的代码:

var loader:Loader;
var closer:close;

norton_btn.addEventListener(MouseEvent.CLICK, NortonDemo);
function NortonDemo(e:MouseEvent):void 
{
 var req:URLRequest = new URLRequest("norton.swf");
 loader = new Loader();
 loader.load(req);
 container_mc.addChild(loader);
 closer = new close();
 closer.x = 415;
 closer.y = -294;
 addChild(closer);
 closer.addEventListener(MouseEvent.CLICK, closeNortonDemo);

}

function closeNortonDemo(e:MouseEvent):void 
{

 closer.removeEventListener(MouseEvent.CLICK, closeNortonDemo);
 removeChild(closer);
 container_mc.removeChild(loader);
 loader.unloadAndStop();

}

///////////////////////

现在,我需要添加或更改此代码并添加到 NortonDemo 最后一帧的代码以完成我想要做的事情?

谢谢!

【问题讨论】:

    标签: actionscript-3 flash-cs4


    【解决方案1】:

    您需要在播放最后一帧时删除加载的 swf 吗?
    我会像你一样做:

    loader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
    addChild(loader);
    loader.load(new URLRequest("norton.swf"));
    
    private function onInit(e:Event):void {
       (loader.getChildAt(0) as MovieClip).addEventListener(Event.ENTER_FRAME, onFrame);
    }
    
    private function onFrame(e:Event):void {
        if((loader.getChildAt(0) as MovieClip).totalFrames == (loader.getChildAt(0) as MovieClip).currentFrame){
            (loader.getChildAt(0) as MovieClip).removeEventListener(Event.ENTER_FRAME, onFrame);//the only thing that might cause a problem imho
             loader.removeChildAt(0);
             loader.unload();
        }
    }
    

    【讨论】:

    • 您好,感谢您的快速回复。尝试您的代码时出现以下错误:1013:私有属性只能用于类属性定义。
    猜你喜欢
    • 2013-03-20
    • 2023-03-04
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2010-11-26
    • 2011-10-01
    • 1970-01-01
    • 2012-12-03
    相关资源
    最近更新 更多