有人知道如何在Flex或Flash构建器的调试模式下查看任何组件的事件侦听器吗?
干杯,PK
答案 0 :(得分:0)
没有直接的方式来枚举听众AFAIK。
您仍然可以通常使用IEventDispatcher接口中的方法执行操作:
package flash.events
{
public interface IEventDispatcher
{
function addEventListener(eventName:String,
listener:Object,
useCapture:Boolean=false,
priority:Integer=0,
useWeakReference:Boolean=false):Boolean;
function removeEventListener(eventName:String,
listener:Object,
useCapture:Boolean=false):Boolean;
function dispatchEvent(eventObject:Event):Boolean;
function hasEventListener(eventName:String):Boolean;
function willTrigger(eventName:String):Boolean;
}
}
上述代码的来源:http://livedocs.adobe.com/flex/3/html/help.html?content=16_Event_handling_6.html
答案 1 :(得分:-1)
在类上创建一个变量:
private var __numListeners:Number = 0;
然后创建一个set和get方法来编辑该变量...... 并且每次添加或删除侦听器时,它都会使用该方法调整该变量...
this.setNumListeners(1); or whatever
然后可以通过
访问它trace(someObject.getNumListeners())
答案 2 :(得分:-1)
如果不编辑应用程序中实现IEventDispatcher接口的所有组件,就没有快速的方法。
如果播放器是开源的,那么您可以扩展EventDispatcher类以将trace语句添加到其中,但事实并非如此。