2013-01-23 36 views
0

我想在Flash CS5,AS3中建立一個遊戲。該遊戲將有一個主板(mainBoard.swf),從那裏我可以選擇我想玩什麼(每次加載不同的SWF文件)。我的問題是我無法關閉自己的孩子swf。我已經寫的代碼是:uload從自己的孩子SWF

mainBoard.fla

var gameLoader:Loader = new Loader(); 
var loadGameRequest:URLRequest; 

function startGame(eventObject:MouseEvent):void{ 

    loadGameRequest = new URLRequest("puzzle.swf");  
    gameLoader.load(loadGameRequest); 
    gameLoader.x = 0; 
    gameLoader.y = 0; 
    addChild(gameLoader); 
    gameLoader.contentLoaderInfo.addEventListener('unloadGame', unloadSWFGame);  

} 

function unloadSWFGame(event:Event):void{ 
    event.target.removeEventListener('unloadGame', unloadSWFGame); 
    removeChild(gameLoader); 
    gameLoader.unload(); 
} 

puzzle.fla我有一個 「退出」 按鈕,代碼是這樣的:

exit_btn.addEventListener(MouseEvent.CLICK, closeSWF); 

function closeSWF(event:MouseEvent):void { 
    dispatchEvent(new Event('unloadGame', true)); 
} 

據我所讀,這是我必須使用的方式,但它不起作用。 * exit_btn *什麼都不做。有人可以幫忙嗎?難道我做錯了什麼??

回答

0

更換

gameLoader.contentLoaderInfo.addEventListener('unloadGame', unloadSWFGame);  

gameLoader.addEventListener('unloadGame', unloadSWFGame);  

的contentLoaderInfo僅供loading事件。對於鼠標事件,始終使用顯示列表元素。

+0

感謝您的幫助。雖然我得到一個錯誤消息:「TypeError:錯誤#1009:無法訪問空對象引用的屬性或方法。你知道爲什麼嗎? –

+0

其餘的代碼看起來像工作,這個錯誤來自其他地方)這意味着你嘗試調用方法或設置/獲得null對象的屬性。 – fsbmain

+0

此更改之前我沒有得到此錯誤...只有現在.. –