Как я вижу все события, запущенные объектом? - PullRequest
1 голос
/ 12 июля 2010

У меня проблемы с подключением слушателя события к fl.transitions.Transition.

Можно ли как-то просмотреть все события, которые вызывает объект? Таким образом, я мог проверить, что я использую правильное событие (и, возможно, просмотреть лучшие из них для использования).

Ответы [ 7 ]

3 голосов
/ 12 июля 2010

Самый простой - переопределить метод dispatchEvent в классах, где вы хотите перехватывать события.
Вы можете найти классы в %CS_ROOT%\Common\First Run\Classes\mx\transitions\easing\.

Вы также можете создать подкласс * 1006.* с пользовательской реализацией dispatchEvent и используйте ее в качестве подкласса для всех классов, где вы захотите перехватывать события.

greetz
back2dos

1 голос
/ 14 июля 2010

Я бы посмотрел на TransitionManager и на события allTransitionsOutDone и allTransitionsInDone, которые он отправляет.Я не использовал их, но мое понимание их функций соответствует тому, что вы, похоже, ищете.

1 голос
/ 12 июля 2010

Проблема в том, что вы должны иметь тип события для прослушивания.Единственный способ сделать это - добавить слушателей для всех возможных событий.

Теперь вы можете добавить обработчик с неопределенным типом события, например:

private function myUniversalHandler(event:*) : void {
  trace(event.type);
  trace(event.constructor.toString());
}

, и он будет сообщать о любом событии, переданном ему.Тем не менее, он просто не будет вызываться, если он не прослушивает событие определенного типа.И добавление всех этих слушателей - большая работа для прохождения.Лучше изучить доступные вам события из любого класса, из которого вы отправляете вентиляцию.

0 голосов
/ 12 июля 2010

Я тоже немного почесал голову по этому вопросу.Ответ таков:

  1. . Вы можете получить список всех прослушивателей событий, которые слушает объект, только если он подключен, хотя MXML
  2. , если он не подключен через MXML, вы не можете видеть событияобъект слушает (присоединяется AS)

если вы хотите увидеть все события, которые слушает объект, вы можете проверить hasEventListener, хотя это длинный способ кодирования

другойЭффективный способ (если вы можете использовать его, я не смог) состоит в том, чтобы обезопасить патч фреймворка и создать словарь слушателей для каждого объекта.Вы можете сделать это, исправив FlexSprite и переопределив функцию addEventListener.Вы должны иметь в виду, что это не будет работать при загрузке фреймворка через RSL.

0 голосов
/ 12 июля 2010

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

Просмотр ASDocs, как предлагали другие, является хорошим способом получить представление о задокументированных событиях компонента;и в большинстве случаев вы сможете найти тот, который соответствует вашим потребностям.

0 голосов
/ 12 июля 2010

проверьте онлайн-ссылку , вы должны увидеть там все события (и унаследованные события) класса.На заметку, если вы используете flex, вы можете использовать mx.states.Transition

0 голосов
/ 12 июля 2010

Вы не можете программно получить список всех событий, запущенных данным объектом.Однако вы можете получить список всех событий, сгенерированных стандартным библиотечным объектом (которые являются частью его открытого интерфейса) из его документации (ссылка на ссылку Показать унаследованные события) и решитьиспользуете ли вы соответствующий.

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