Почему BindingUtils.bindProperty () не работает сразу? - PullRequest
2 голосов
/ 08 июля 2010

У меня есть двухсторонняя привязка между загруженным флэш-файлом и основным приложением в flex.

    BindingUtils.bindProperty(this, "micGainValue", audioPublisherApp, "micVolume");
    BindingUtils.bindProperty(audioPublisherApp, "micVolume", this, "micGainValue");
    micGainValue=75;

Однако настройка micGainValue не устанавливает micVolume во флэш-файле. Вместо этого я попытался установить micGainValue после 200 кадров, и теперь он устанавливает micVolume. Есть ли способ проверить, что эти свойства связаны и установить значение после?

EDIT:

Файл флэш-памяти фактически изменял значение. Теперь возникает вопрос, почему настройка micVolume не меняет micGainValue.

Это код из моего загруженного флэш-файла:

[Bindable]</p> <pre><code> public function get micVolume():Number{ if(microphone!=null) return microphone.gain; return 0; } public function set micVolume(val:Number):void{ if(microphone!=null) microphone.gain=val; }

1 Ответ

5 голосов
/ 08 июля 2010

Flex привязка данных реализована с использованием событий.Когда вы используете BindingUtils.bindProperty, за кулисами происходит то, что к целевому объекту добавляется прослушиватель событий для прослушивания события типа PropertyChangeEvent

Если целевой объект не отправляет PropertyChangeEvent, когда онПри изменении атрибута привязка никогда не сработает.

Когда вы добавляете атрибут [Bindable] к свойствам во Flex, вы делаете так, чтобы инфраструктура отправляла PropertyChangeEvent при изменении этого свойства.Если вы не включите атрибут (или не поместите его в класс), событие не будет отправлено, и привязка не произойдет.

Вот почему привязка работает с Flex на Flash, а не наоборотвокруг - объект Flex отправляет требуемое событие, когда оно изменяется, но объект флэш-памяти не является.

Вот информация о PropertyChangeEvent

Лично для Flash -> Flex Я бы отправил свое собственное событие, когда Flash-часть изменяет свои значения, и использовал для этого обработчик для обновления привязываемого объекта в Flex-части.Затем вы можете привязать к этому другие элементы Flex.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...