外部swf仍然加载到其他场景?如何正确卸载?

时间:2014-02-10 06:25:08

标签: actionscript-3 flash

我遇到了同样的问题,但是在不同的场景中,我有4个场景,在我的第4个场景中我有3个按钮,里面加载和卸载外部swf。在第四个场景中它完美地工作但是当我尝试击中我的主导航(链接到场景1,2和3)时,外部swf仍然加载到其他场景...这是疯了我已经尝试了很多方法,但它不起作用。

这是我的剧本:场景4

import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.MouseEvent;

var Xpos:Number = 525;
var Ypos:Number = 200;
var swf:MovieClip;
var loader:Loader=new Loader();

var defaultSWF:URLRequest=new URLRequest("Steps/intro.swf");


loader.load(defaultSWF);
loader.x = Xpos;
loader.y = Ypos;
addChild(loader);
//button function 
function btnCLICK(event:MouseEvent):void{ removeChild(loader);
var newSWFRequest:URLRequest = new URLRequest("Steps/" + event.target.name + ".swf");   
loader.load(newSWFRequest); loader.x = Xpos; loader.y = Ypos; //addChild(loader);

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(){ 
loader.content.height = 140;
loader.content.scaleX = loader.content.scaleY;});
addChild(loader);

}

//button listeners
NewBusinessPermit.addEventListener(MouseEvent.CLICK, btnCLICK);
RenewBusinessPermit.addEventListener(MouseEvent.CLICK, btnCLICK);
RPTAPayment.addEventListener(MouseEvent.CLICK, btnCLICK);

我把这个剧本放到所有其他场景(1,2,3)来卸载场景4的电影

if(stage.contains(loader)){
removeChild(loader);
}
else{
loader = null;  // 've also tried replacing this with gotoAndPlay ("frame name");
}

**我实际上想在这里说明在这些场景中的IT(1,2 0r 3)仍有一些外部子swf仍在加载,将其从舞台上移除并继续播放动画中的任何动画这个当前的场景。否则,如果你跟踪它没有,只需继续并在当前场景中播放补间动画。

不幸的是,我得到了错误,如果我的剧本符合目标,我不知道。 HELP?

1 个答案:

答案 0 :(得分:0)

您可以尝试卸载已加载的swf:

loader.unloadAndStop( true ); 
if( stage.contains(loader) )    removeChild( loader );
loader = null;

您可以看到文档here

或者您也可以尝试停止装载机内的所有剪辑:

MovieClip(loader.content).stopAllMovieClips();
if( stage.contains(loader) )    removeChild( loader );
loader = null;

您可以看到文档here

我认为第一种方法应该是好的。