- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
private var _disabled:int = 0;
public function set enabled(v:Boolean):void {
if (!v) {
this._disabled ++;
} else {
this._disabled --;
}
this.run();
}
public function get enabled():Boolean {
return !this._disabled;
}
Есть случаи, когда места должны быть действительно независимыми, а результат должен получаться как логическое "И" от их установок.
Приведу глупый пример - есть пачка валидаторов и кнопка ОК. Если валидатор видит, что его поле заполнено неправильно, он вызывает enabled = false, если же поле заполняется корректно - enabled = true. Кнопка разблокируется когда все валидаторы будут согласны со введенными данными. С boolean так не выйдет.
Более далекий пример - рекурсивные мьютексы.