【发布时间】:2011-03-03 06:04:04
【问题描述】:
我以前从未尝试过这样做,所以我有点晕头转向。我想在 myClass 自定义类中有一个名为 enabled 的公共布尔值。如果调用要更改,如何从更改中触发函数?
我应该向我的变量添加一个 Event.CHANGE 事件监听器吗?我可以这样做吗?还是有更标准的方法?
【问题讨论】:
标签: actionscript-3 variables public
我以前从未尝试过这样做,所以我有点晕头转向。我想在 myClass 自定义类中有一个名为 enabled 的公共布尔值。如果调用要更改,如何从更改中触发函数?
我应该向我的变量添加一个 Event.CHANGE 事件监听器吗?我可以这样做吗?还是有更标准的方法?
【问题讨论】:
标签: actionscript-3 variables public
我们通常为此使用属性。
属性就像外部的公共变量——您可以设置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,如果类的内部必须更改,您可以避免重写外部代码。
【讨论】: