Есть ли в Flex событие, которое вылетает, когда все операции в теге mx: state выполнены? - PullRequest
0 голосов
/ 28 августа 2010

Давайте рассмотрим следующий пример:

<mx:State name="sayHello">
            <mx:SetProperty name="preText" target="{this}" value="Hello"><mx:SetProperty>
</mx:State>

Могу ли я как-нибудь узнать, когда для свойства preText было установлено значение hello?

Уже пробовали с помощью: состояние-> активировать состояние-> состояние enterState-> exitState

и

UIComponent-> currentStateChange

Во всех вышеперечисленных случаях свойство pretext имеет значение null, как бы то ни было, позднее оно получает желаемое значениепроверено таймером)

Любая помощь будет отличной!Спасибо!

1 Ответ

0 голосов
/ 28 августа 2010

Сложно сказать. Большинство свойств, реализованных в Flex Framework, отправляют propertyChangedEvent. Таким образом, в этом случае вы можете прослушать событие preTextChanged в рассматриваемом компоненте, чтобы сообщить, что свойство изменилось.

Если это свойство, которое вы реализовали самостоятельно, просто заставьте метод набора свойств отправлять событие следующим образом:

dispatchEvent(new Event('preTextChanged'));

Добавьте слушателя так:

this.addEventListener('preTextChanged',onpreTextChanged);

Вы не сможете прослушивать событие изменения свойства в MXML, если не определите метаданные события для события; и большинство компонентов не удосуживаются определить метаданные для события propertyChanged.

Для изменения состояния может потребоваться время. Из-за асинхронной природы Flex / Flash Player что-то вроде этого:

currentState = newState
trace(preText);

Значение трассировки, скорее всего, еще не будет установлено, поскольку обработка изменения состояния еще не выполнялась. Возможно, вы сможете прослушать событие currentStateChange , thoug. Когда это отправляет ваши свойства должны быть изменены.

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