Получить все прослушиватели событий для определенного компонента - PullRequest
3 голосов
/ 23 июня 2010

У меня есть приложение на flex, в нем есть несколько готовых компонентов и несколько пользовательских компонентов и событий.

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

Есть ли способ?

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

EventDispatcher имеет довольно тонкий публичный интерфейс:

  • addEventListener
  • dispatchEvent
  • hasEventListener
  • removeEventListener
  • willTrigger

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

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

2 голосов
/ 23 июня 2010

Вы не можете.Вы можете просто использовать только пользовательские компоненты и переопределить addEventListener для сбора информации.Я действительно не понимаю, почему исправление обезьян не сработает.Flex обладает мощными возможностями, но плохим дизайном, и я думаю, вам придется с этим просто жить.

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