ActionScript вызывает частные функции путем изменения открытых переменных? - PullRequest
0 голосов
/ 13 июня 2010

Я никогда не пытался делать это раньше, поэтому моя голова немного плавает.Я хотел бы иметь публичное логическое значение с именем enabled в myClass пользовательский класс.если он вызывается для изменения, как я могу вызвать функцию из изменения?

если я добавлю слушатель события Event.CHANGE в мою переменную?могу ли я сделать это?или есть более стандартный способ?

1 Ответ

2 голосов
/ 13 июня 2010

Мы обычно используем для этого свойства.
Свойства аналогичны общедоступным переменным для внешних - вы можете установить instance.enabled = true; и т. Д. Но вы определяете свойства как функции получения и / или установки для класса.
Это идеальное место для выполнения пользовательской логики при изменении значения.

Например:

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;
    }
}

Обратите внимание, что они не могут иметь то же имя, что и ваша личная переменнаяи вам не нужно, чтобы они оба были определены.На самом деле, вам даже не нужна переменная для установщика / получателя.Вы можете использовать их так же, как любую функцию - они просто предоставляют вам другой синтаксис.
Например:

var object:CustomClass = new CustomClass();
object.enabled = false;
if (object.enabled) {
    ...
}

Они отлично подходят для предоставления простого API, удерживая вас от перезаписи внешнего кода, есливнутренние компоненты класса должны измениться.

AS3 Ссылка на геттеры и сеттеры .

...