AS3 объектно-ориентированный дизайн GUI - PullRequest
0 голосов
/ 26 ноября 2009

Я пытаюсь сделать небольшую флеш-игру с графическим интерфейсом, представляющую собой меню, в котором игроки могут выбирать определенные предметы, вроде игр в Tower Defense.

Было бы неплохо сделать графический интерфейс синглтоном? Потому что, очевидно, может быть только 1 экземпляр класса GUI.

Есть ли лучший способ?

1 Ответ

3 голосов
/ 26 ноября 2009

По моему мнению, остальная часть системы не должна знать о вашем графическом интерфейсе, поэтому бессмысленно делать ее единой. Представление (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'));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...