我在组件中有一个可绑定的 getter,它会在 [隐藏] 计时器运行时通知我。我还有一个上下文菜单,如果这个计时器正在运行,它应该禁用其中一个菜单项。是否可以创建一个 ChangeWatcher 来监视可绑定属性/getter的负面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() 为真时,菜单项被启用;我希望它仅在条件为假时启用。
我可以创建第二个 getter(还有其他依赖于当前 getter 的绑定)来返回相反的条件,但这对我来说听起来很难看:
[Bindable]
public function get isNotPlaying():Boolean {
return !isPlaying;
}
这是可能的,还是我完全错过了另一种方法?