获取特定组件上的所有事件侦听器

时间:2010-06-23 09:19:41

标签: flex actionscript-3

我有一个flex应用程序,它有一些开箱即用的组件和一些自定义组件和事件。

我想在运行时获取特定组件上的所有事件监听器,我知道如何使用猴子修补框架来实现它,但我不想使用猴子补丁,也不能在生产中依赖它。

有办法吗?

2 个答案:

答案 0 :(得分:2)

你做不到。您只需使用自定义组件并覆盖addEventListener即可收集信息。我真的不明白为什么猴子补丁不起作用。 Flex功能强大,但设计很差,我想你必须忍受它。

答案 1 :(得分:2)

EventDispatcher有一个非常苗条的公共界面:

  • addEventListener
  • dispatchEvent
  • hasEventListener
  • removeEventListener
  • willTrigger

这意味着不会公开监听器列表。您只能判断特定类型的事件是否至少有一个事件侦听器。

我会重新审视你为什么要做你想做的事。在典型的Observer Pattern中,监听器列表并不打算暴露。我有一种强烈的感觉,如果你想要获得该列表,那么你正在从错误的方向接近更高级别的问题。