AS3 объектно-ориентированный дизайн GUI
-
05-07-2019 - |
Вопрос
Я пытаюсь сделать небольшую флеш-игру с графическим интерфейсом, по сути, это меню, в котором игроки могут выбирать определенные предметы, вроде игр в Tower Defense. Р>
Было бы неплохо сделать графический интерфейс синглтоном? Потому что, очевидно, может быть только 1 экземпляр класса 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'));
}
}
Не связан с StackOverflow