2011-03-31 83 views
0

我是新來的Flash動作3,並試圖學習。我有一個簡單的菜單,有「開始遊戲」選項。當用戶預設「開始遊戲」時,我隱藏菜單並開始遊戲。現在,如果我想要「退出」並轉到菜單屏幕,我該怎麼做?我如何清除/停止用戶剛玩過的遊戲?感謝您對這件事的任何幫助^^。卸載內容 - 主菜單動作3

回答

0

如果您在時間線上進行編碼,最簡單的方法是將您的遊戲(圖形,代碼等)放在自己的MovieClip中,而不是在主時間軸上。然後,您可以在遊戲結束時從舞臺上移除包裝MovieClip,方法是跳到不存在MovieClip的幀,或者在代碼中使用removeChild

如果您使用的是類文件,其概念是相同的:將遊戲放入自己的剪輯中。在這種情況下,你的遊戲會被封裝在自己的剪輯中,因爲它會是一個Sprite:class Game extends Sprite。但是,而不是使用遊戲作爲文檔類,你要創建並添加它使用類似於下面的代碼階段:

var game:Game = new Game(); 
addChild(game); 

同樣,當遊戲使用做,你可以只從舞臺中刪除您的遊戲實例removeChild(game);

當遊戲結束時,這需要照顧移除遊戲顯示。 但是,最重要的部分是,您必須刪除ENTER_FRAME,KEY_DOWN和您的遊戲可能創建的任何其他偵聽器。即使您將舞臺移除,這些ENTER_FRAME處理程序仍將繼續運行(可能無限期)。這通常會導致錯誤和性能問題,因爲即使您希望遊戲停止,遊戲也會繼續運行。因此,遊戲結束時,首先使用removeEventListener刪除這些事件偵聽器。 (如果您可以將您的遊戲儘可能限制爲少數ENTER_FRAME聽衆,這也很有幫助,因此這一步很簡單。)然後將遊戲剪輯從舞臺上移除是安全的。