退出框架时卸载.swf

时间:2013-03-02 23:19:55

标签: actionscript-3 function parent-child flash-cs5

我意识到之前已经问过这个问题而且我已经尝试了所有大多数解决方案而无济于事。在我的flash文件中,我在goGallery框架中加载了外部.swf,但现在当我转到另一个框架时,.swf文件仍然在后台。

下面是代码,如果您还可以告诉我在哪里放置新代码,那就太好了,因为我已经尝试过多次将解决方案放在其中。

stop();

function listenerFunction (Event):void{
}


function goHome (e:MouseEvent):void{
    gotoAndStop("Home");
}
home_btn.addEventListener(MouseEvent.CLICK, goHome);

function goAbout (e:MouseEvent):void{
    gotoAndStop("About");
}
about_btn.addEventListener(MouseEvent.CLICK, goAbout);

function goHistory (e:MouseEvent):void{
gotoAndStop("History");
}
history_btn.addEventListener(MouseEvent.CLICK, goHistory);

function goEducation (e:MouseEvent):void{
gotoAndStop("Education");
}
education_btn.addEventListener(MouseEvent.CLICK, goEducation);

function goInterests (e:MouseEvent):void{
gotoAndStop("Interests");
}
interests_btn.addEventListener(MouseEvent.CLICK, goInterests);

function goGoals (e:MouseEvent):void{
gotoAndStop("Goals");
}
goals_btn.addEventListener(MouseEvent.CLICK, goGoals);

function goPuzzle (e:MouseEvent):void{
gotoAndStop("Puzzle");
}
puzzle_btn.addEventListener(MouseEvent.CLICK, goPuzzle);

function goSound (e:MouseEvent):void{
gotoAndStop("Sound");
}
sound_btn.addEventListener(MouseEvent.CLICK, goSound);

function goGallery (e:MouseEvent):void{
gotoAndStop("Gallery");
var myLoader:Loader = new Loader();                    
var url:URLRequest = new URLRequest("gallery.swf"); 
myLoader.load(url);                                     
addChild(myLoader);

myLoader.x = 380;                                         
myLoader.y = 270;

myLoader.scaleX = 0.45; 
myLoader.scaleY = 0.45; 

}

gallery_btn.addEventListener(MouseEvent.CLICK, goGallery);

1 个答案:

答案 0 :(得分:0)

您需要保留对myLoader的引用,并在不希望它出现在舞台上时将其删除。

var galleryLoader:Loader = new Loader();

function goGallery (e:MouseEvent):void{
    gotoAndStop("Gallery");

    var url:URLRequest = new URLRequest("gallery.swf"); 
    galleryLoader.load(url);                                     
    addChild(galleryLoader);
}

在其他功能中删除galleryLoader:

function goHome (e:MouseEvent):void{
    removeGallery();
    gotoAndStop("Home");
}

function removeGallery():void
{
    if(galleryLoader.parent)
       galleryLoader.parent.removeChild(galleryLoader);
}