0

目前我正在编写一个 flash actionscript 3 游戏,我使用模型类中的调度事件来告诉视图类更新自己。但问题是我有两个变量,其调度事件的原因完全不同,我不希望每次设置模型变量之一时都触发两个侦听器。

目前,模型类中变量的 getter/setter 如下所示:

public function get swankle():Boolean
        {
            return _swankle;
        }

        public function set swankle(value:Boolean):void
        {
            _swankle = value;
            dispatchEvent(new Event(Event.CHANGE));
        }

我想出的可能的解决方案:

  • 以某种方式命名您的 CHANGE 事件
  • 每次需要新的 CHANGE 事件时创建一个新的模型类

让我知道你们认为最好的方法。

干杯,吉姆

4

1 回答 1

0

为您的两个不同目的制作自定义事件。

dispatchEvent(new Event("SwankleChange"));

尽管出于调试和可读性目的,您很可能希望使用静态常量而不是纯文本。

public static const SWANKLE_CHANGE:String = "SwankleChange"; //in your class that contains your swankle methods

然后你可以这样做:

dispatchEvent(new Event(SWANKLE_CHANGE));

和:

swankleClassInstance.addEventListener(SwankleClass.SWANKLE_CHANGE, doSomething); //SwankleClass is whatever the class name is that contains the code you posted
于 2013-05-31T19:16:39.750 回答