开发者

Get all event listeners on a specific component

I have an application in flex, it has some components out of the box and quite a few开发者_开发技巧 of custom components and events.

I want to get all event listeners on a specific component in runtime, I know how to do it with monkey-patching the framework but I do not want to use a monkey patch nor can I rely on this in production.

Is there a way?


The EventDispatcher has a pretty slim public interface:

  • addEventListener
  • dispatchEvent
  • hasEventListener
  • removeEventListener
  • willTrigger

This means the list of listeners isn't exposed. You can only tell if there is at least one event listener for a particular type of event.

I would re-examine why you need to do what you want to do. In a typical Observer Pattern the listener list isn't meant to be exposed. I have a strong feeling if you are trying to get that list then you are approaching a higher level problem from the wrong direction.


You can't. You could simply use custom components only and override addEventListener to gather the information. I don't really see why monkey patching wouldn't work. Flex is powerful in features but poor in design and I guess you'll have to just live with that.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜