0
我想製作一個小型的Flash遊戲,它有一個基本上是玩家可以選擇某些項目的菜單,有點像塔防遊戲。AS3面向對象的GUI設計
將GUI設置爲單例會是一個好主意嗎?因爲顯然,只能有1個GUI類的實例。
有沒有更好的方法?
我想製作一個小型的Flash遊戲,它有一個基本上是玩家可以選擇某些項目的菜單,有點像塔防遊戲。AS3面向對象的GUI設計
將GUI設置爲單例會是一個好主意嗎?因爲顯然,只能有1個GUI類的實例。
有沒有更好的方法?
在我看來,系統的其他部分不應該知道你的GUI,所以使它成爲一個單例是毫無意義的。視圖(GUI)應該綁定到某種模型以顯示當前狀態。
一般來說,完全避免單身人士是個好主意。
通過結合模型我的意思是類似的東西:
class MyGUI
{
...
public function set game(g:Game):void {
g.addEventListener('pointsChanged', function(e:Event):void {
ptsLabel.text = g.points.toString() + " points";
})
}
}
class Game extends EventDispatcher
{
private var _points:int = 0;
public function get points():int {
return _points;
}
public function set points(points:int):void {
_points = points;
dispatchEvent(new Event('pointsChanged'));
}
}
感謝您的回答:-) 但我不能確定你的意思是什麼「的GUI應綁定到某種模式」。 – helloworlder 2009-11-26 15:42:22
所以你的模型經常成爲AS3項目中的一個單例 - 它存儲關於遊戲狀態的各種細節。 GUI從這個模型中提取信息,但本身就是另一種視圖 - 您應該從GUI調度GUIEvents並讓控制器在其他視圖中實現它們。那有意義嗎? – Myk 2009-11-26 16:55:49
這是一個很好的答案。 – Jotham 2009-11-27 00:56:15