[hidden]タイマーが実行されているときに通知するコンポーネントにバインド可能なゲッターがあります。このタイマーが実行されている場合、メニュー項目の1つを無効にするコンテキストメニューもあります。バインド可能なプロパティ/ゲッターの負enabled
の状態を監視し、メニュー項目のプロパティを変更するChangeWatcherを作成することは可能ですか?
これが私が一緒にバインドしようとしている基本的な方法です:
クラスA:
[Bindable]
public function get isPlaying():Boolean {
return (_timer != null) ? _timer.running : false;
}
クラスB:
private var _playingWatcher:ChangeWatcher;
public function createContextMenu():void {
//...blah blah, creating context menu
var newItem:ContextMenuItem = new ContextMenuItem();
_playingWatcher = BindingUtils.bindProperty(newItem, "enabled", _classA, "isPlaying");
}
上記のコードでは、逆の場合があります。isPlaying()がtrueの場合、メニュー項目が有効になります。条件がfalseの場合にのみ有効にしたい。
逆の条件を返すために2番目のゲッター(現在のゲッターに依存する他のバインディングがあります)を作成することもできますが、それは私には醜いように聞こえます:
[Bindable]
public function get isNotPlaying():Boolean {
return !isPlaying;
}
これは可能ですか、それとも私が完全に欠けている別のアプローチがありますか?