フレックスチェンジウォッチャーは負の状態に結合します
-
08-10-2019 - |
質問
隠し]タイマーが実行されているときに通知するコンポーネントにバインド可能なゲッターがあります。また、このタイマーが実行されている場合、メニュー項目のいずれかを無効にするコンテキストメニューもあります。を観戦するChangeWatcherを作成することは可能ですか ネガティブ バインド可能なプロパティ/ゲッターの条件と変更 enabled
メニュー項目のプロパティ?
ここに私が結合しようとしている基本的な方法は次のとおりです。
クラス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の場合、メニュー項目が有効になっています。条件が誤っている場合にのみ有効にすることを望みます。
逆の状態を返すために、2番目のゲッター(現在のゲッターに依存する他のバインディングがあります)を作成できますが、それは私には醜いように聞こえます。
[Bindable]
public function get isNotPlaying():Boolean {
return !isPlaying;
}
これは可能ですか、それとも私が完全に欠けている別のアプローチがありますか?
解決
バインディングユーティルでバインドセッターを使用できますが、アプローチは有効と思われます。さもなければ、バインドプロパティはマッピングの種類のプロパティを知らないため、負の条件パラメーターがありません。
他のヒント
ContextMenuitemを拡張し、その上にカスタムプロパティを作成します。
所属していません StackOverflow