У меня есть привязываемый получатель в компоненте, который сообщает мне, когда работает [скрытый] таймер. У меня также есть контекстное меню, которое, если этот таймер запущен, должно отключить один из пунктов меню. Можно ли создать ChangeWatcher, который следит за отрицательным условием связываемого свойства / получателя и изменяет свойство enabled
пункта меню?
Вот основные методы, которые я пытаюсь связать вместе:
Класс А:
[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 () истинно, пункт меню включен; Я хочу, чтобы он был включен только тогда, когда условие ложно.
Я мог бы создать второй получатель (есть и другие привязки, которые полагаются на текущий получатель), чтобы вернуть обратное условие, но для меня это звучит некрасиво:
[Bindable]
public function get isNotPlaying():Boolean {
return !isPlaying;
}
Возможно ли это, или есть другой подход, который мне полностью не хватает?