2011-07-16 49 views

回答

0

还有就是AFAIK列举的听众没有straightfoward方式。

,您仍然可以做你通常会与来自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

+0

这不能解决这个问题吗?另外,编辑界面会破坏playerglobal.swc中的内置播放器方法 – Nate

+0

@Nate:是的,我的理解是,注册的听众并不意味着可能被检索,因为1-听众没有以可跟踪的方式“注册”其他然后通过被调用的方法的地址,并且这样的方法可以是匿名的。 – 2011-07-16 17:54:03

0

创建称为类的变量:

private var __numListeners:Number = 0;

然后创建一个set和get方法来编辑变量... 每一个监听器添加或删除其调整,使用VAR该方法的时间......

this.setNumListeners(1); or whatever 

话,就可以访问通过

trace(someObject.getNumListeners()) 
+0

我很困惑这与原始问题有什么关系? – JeffryHouser

+0

如果我没有错,那么就会询问关于Flash Builder中调试模式的问题,并且他想要追踪组件上添加的事件监听器。如果它没有用,那么很抱歉误会。 –

+2

@SWato Singh原始海报想要一个事件监听器的列表;真正。但在原始问题中没有任何事情可以做w/trace语句。我不明白如何启用/禁用跟踪语句可以给他他想要的信息。 (除非他明确地在每个听众中加上一个跟踪陈述)。 – JeffryHouser

-1

有没有快速的方法来做到这一点,而无需编辑都在你的应用程序,实现IEventDispatcher接口的组件。

如果玩家是开源的,那么你可以扩展EventDispatcher类来添加跟踪语句,但事实并非如此。