2011-07-16 48 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類來添加跟蹤語句,但事實並非如此。