我以前从未尝试过这样做,所以我的头有点游泳。我想在myClass自定义类中启用一个名为的公共布尔值。如果它被调用来改变,我如何从改变中触发一个函数?
我应该向我的变量添加一个 Event.CHANGE 事件侦听器吗?我可以这样做吗?还是有更标准的方法?
我以前从未尝试过这样做,所以我的头有点游泳。我想在myClass自定义类中启用一个名为的公共布尔值。如果它被调用来改变,我如何从改变中触发一个函数?
我应该向我的变量添加一个 Event.CHANGE 事件侦听器吗?我可以这样做吗?还是有更标准的方法?
我们通常为此使用属性。
属性就像外部的公共变量——您可以设置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,如果类的内部必须更改,则可以防止您重写外部代码。