actionscript-3 - AS3 - 我可以使用 addEventListener 检测变量值的变化吗?

标签 actionscript-3 addeventlistener

是否可以使用 EventListener 监听变量并检测该变量的值何时发生变化?谢谢。

最佳答案

如果你把它全部包装到一个类中,这很容易做到。我们将使用 getter/setter 方法。每当调用 setter 方法时,它都会分派(dispatch)和事件。

(注意:Setter 和 Getter 被视为属性)。您只需分配一个值,而不是调用一个方法(例如 someVar = 5 而不是 someVar(5); 尽管 setter/getter 是函数/方法,但它们被视为属性。

//The document class
package
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.events.EventDispatcher;

  public Class TestDocClass extends Sprite
  {
    private var _model:Model;

    public function TestDocClass():void
    {
      _model = new Model();
      _model.addEventListener(Model.VALUE_CHANGED, onModelChanged);
    }

    private function onModelChanged(e:Event):void
    {
      trace('The value changed');
    }
  }
}

//The model that holds the data (variables, etc) and dispatches events. Save in same folder as DOC Class;
package
{
  import flash.events.Event;
  import flash.events.EventDispatcher;

  public class Model extends EventDispatcher
  {
    public static const VALUE_CHANGED:String = 'value_changed';
    private var _someVar:someVarType;

    public function Model():void
    {
      trace('The model was instantiated.');
    }

    public function set someVariable(newVal:someVarType):void
    {
      _someVar = newVal;
      this.dispatchEvent(new Event(Model.VALUE_CHANGED));
    }
  }
}

关于actionscript-3 - AS3 - 我可以使用 addEventListener 检测变量值的变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/306896/

相关文章:

java - 将文件从 actionscript 发送到 servlet

javascript - IE 不允许 Flash 流音频

javascript - 在 JavaScript 中使用 Click addEventListener 交换 CSS

Javascript addEventListener 两个不同元素冲突

javascript - 在 Javascript 中使用 getAttribute 和 addEventListener

flash - 复杂的蒙版绘制损坏的形状

actionscript-3 - Flex 4.6 检查 creationComplete 是否已经发生

apache-flex - 在 ActionScript 3 中加密/解密图像

javascript拖放,添加事件监听器。 -完全迷失了

javascript - AddEventListener 在一个对象中