2015-12-26 23 views
0

我有兩個SWF文件。第一個是home.swf,第二個是menu.swf。每個SWF文件都有一個加載外部SWF文件的按鈕。卸載加載外部文件以儘量減少加載時間的同一按鈕中的SWF文件

這裏面home.swf文件中的代碼:

stop(); 
menu_btn.addEventListener(MouseEvent.CLICK, func_menu); 
function func_menu(e:MouseEvent):void { 
    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    loader.load(new URLRequest("menu.swf")); 
} 

function onComplete(e:Event):void { 
    var movie:* = LoaderInfo(e.currentTarget).content; 
    stage.addChild(movie); 
} 

這裏面menu.swf文件中的代碼:

stop(); 
home_btn.addEventListener(MouseEvent.CLICK, func_home); 
function func_home(e:MouseEvent):void { 
    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    loader.load(new URLRequest("home.swf")); 
} 

function onComplete(e:Event):void { 
    var movie:* = LoaderInfo(e.currentTarget).content; 
    stage.addChild(movie); 
} 

如果我點擊按鈕無數次,在SWF文件中獲取更長的時間來加載。我注意到這些代碼不會卸載文件。我需要什麼代碼才能卸載以前的SWF文件? 我是新的動作。請在我身上輕鬆一點。

+0

您加載多次使用設備內存的相同「swf」文件。我認爲你需要用一個加載器事件監聽器加載父代中的「swf」文件,所以你可以使用「loader.unloadAndStop();」在加載新的swf文件之前。 – kare

回答

0

從我的問題,這極有可能是你的主權財富基金之間經常開關明白(家庭裝和卸載菜單,反之亦然)。

我建議你創建一個容器SWF,這將同時加載主權財富基金,並引用保存到裝載機/他們的負擔全部內容。

一旦加載完成,只需調用addChild()和removeChild()來交換它們。

在要觸發從主權財富基金中調劑的情況下,你可以在他們創建的按鈕點擊時分派事件,並聽取派出容器SWF事件。

這樣,你可以交換他們多次,你會在瞬間喜歡,而無需每次都重新加載它們,再加上你避免不斷地分配和釋放內存。