Привязываемая функция без указания имени события - PullRequest
2 голосов
/ 22 марта 2011

Каков эффект создания функции Bindable в flex без указания имени события с ней?Я сделал это в своем коде, и он, кажется, работает нормально, без какого-либо связанного события (однако это генерирует предупреждение).Если я удалю привязку из таких функций, это повлияет на код и не отразит изменения, если возвращается возвращаемое значение из функции.

Может ли кто-нибудь объяснить мне, как и почему такая функция Bindable работает даже без какого-либо событиясвязанный с тегом [Bindable].

Пример:

<mx:Image id="a" source="{getImage(1)}" useHandCursor="true" buttonMode="true" width="10" height="10" click="finalize(event)" autoLoad="true"/>

[Bindable] private var _ratingSelected:int;

[Bindable]
private function getImage(value:int):String
  {
if (value <= _ratingSelected)
return 'images/hr/applicants/star_icon.png';
else
return 'images/hr/applicants/star_icon_dis.png';
  }

Если я удаляю тег Bindable из функции getImage, изображение не обновляется должным образом во время выполнения.Обратите внимание, что _ratingSelected является переменной Bindable здесь.Несмотря на то, что у меня нет какого-либо события, связанного с функцией getImage (), создание Bindable, кажется, работает нормально.Обнаруживает ли он автоматически изменения в переменной _ratingSelected (которая является привязываемой) и вызывает функцию getImage во время выполнения?Пожалуйста, просветите.

Спасибо.

1 Ответ

2 голосов
/ 22 марта 2011

Когда вы не указываете имя события в теге Binding, оно использует событие "propertyChange".Это означает, что каждый раз, когда фреймворк получает событие propertyChange из вашего документа, он будет пытаться обновить источник изображения, снова вызывая getImage.

Теперь, когда значение _ratingSelected обновлено,событие «propertyChange» отправляется изнутри, что приводит к обновлению изображения.

Обратите внимание, что это не имеет никакого отношения к тому, действительно ли getImage использует _ratingSelected для генерации возвращаемого значения.Единственная связь между getImage и _ratingSelected с точки зрения инфраструктуры привязки данных - это событие "propertyChange", которое они оба утверждают, что отправляют, когда их соответствующие значения изменились (даже если getImage фактически никогда не отправляет его).

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