Frage

Ich versuche, ein kleines Flash-Spiel zu machen, das eine GUI hat, das ist im Grunde ein Menü in dem Spieler bestimmte Elemente auswählen können, Art wie die Tower Defense Spiele.

Wäre es eine gute Idee, die GUI einen Singleton zu machen? Denn natürlich kann es nur 1 Instanz der GUI-Klasse sein.

Gibt es einen besseren Weg?

War es hilfreich?

Lösung

Meiner Meinung nach ist der Rest des Systems sollte über Ihre GUI nicht wissen, so macht es ein Singleton ist sinnlos. Die Ansicht (GUI) zu einer Art Modelle binden soll den aktuellen Stand zu zeigen.

Im Allgemeinen ist es eine gute Idee Singletons ganz zu vermeiden.

Mit einem Modell Bindung Ich meine etwas wie folgt aus:

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'));
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top