我应该向我的变量添加一个Event.CHANGE事件监听器吗?我能这样做吗?还是有更标准的方式?
答案 0 :(得分:2)
我们通常使用属性。
属性就像外部的公共变量一样 - 您可以设置instance.enabled = true;
等等。但是您可以将属性定义为类的getter和/或setter函数。
它们是在价值变化时执行自定义逻辑的理想场所。
例如:
public class CustomClass {
private var _enabled:Boolean = false;
public function set enabled(value:Boolean):void {
trace('CustomClass.enabled is now', value);
this._enabled = value;
}
public function get enabled():Boolean {
trace('CustomClass.enabled was retrieved');
return this._enabled;
}
}
请注意,它们不能与您的私有变量具有相同的名称,并且您不需要同时定义它们。实际上,你甚至不需要变量用于setter / getter。您可以像使用任何功能一样使用它们 - 它们只为您提供不同的语法 例如:
var object:CustomClass = new CustomClass();
object.enabled = false;
if (object.enabled) {
...
}
它们非常适合公开一个简单的API,如果类的内部必须改变,就不会重写外部代码。