我正在尝试制作一个具有GUI的小型Flash游戏,这个游戏基本上是一个玩家可以选择某些项目的菜单,有点像塔防游戏。

将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'));
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top