ActionScript通过更改公共变量来调用私有函数?

时间:2010-06-13 16:10:05

标签: actionscript-3 variables public

我以前从来没有尝试过这样做,所以我的头脑游了一下。我想在 myClass 自定义类中使用一个名为 enabled 的公共布尔值。如果要调用它,如何从更改中触发函数?

我应该向我的变量添加一个Event.CHANGE事件监听器吗?我能这样做吗?还是有更标准的方式?

1 个答案:

答案 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,如果类的内部必须改变,就不会重写外部代码。

getterssetters上的AS3参考。