当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《AS3-我可以使用addEventListener检测变量值的变化吗?》经验,为你挑选了1个好方法。

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



1> Brian Hodge..:

如果将它全部包装到类中,这很容易做到.我们将使用getter/setter方法.每当调用setter方法时,setter方法都将调度和调度.

(注意:Setter和Getters被视为属性).您只需分配一个值,而不是调用方法(例如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));
    }
  }
}

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有