在子 swf 的最后一帧卸载子 swf
Posted
技术标签:
【中文标题】在子 swf 的最后一帧卸载子 swf【英文标题】:Unload child swf on last frame of child 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 最后一帧的代码以完成我想要做的事情?
谢谢!
【问题讨论】:
【参考方案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:私有属性只能用于类属性定义。以上是关于在子 swf 的最后一帧卸载子 swf的主要内容,如果未能解决你的问题,请参考以下文章
停止动态加载的 .SWF 循环,然后移动到主时间线上的下一帧