我在flex中有一個應用程序,它有一些組件和很多自定義組件和事件。獲取特定組件上的所有事件偵聽器
我想要在運行時獲取特定組件上的所有事件偵聽器,我知道如何使用猴子修補框架來完成它,但我不想使用猴子補丁,也不能在生產中依賴此功能。
有沒有辦法?
我在flex中有一個應用程序,它有一些組件和很多自定義組件和事件。獲取特定組件上的所有事件偵聽器
我想要在運行時獲取特定組件上的所有事件偵聽器,我知道如何使用猴子修補框架來完成它,但我不想使用猴子補丁,也不能在生產中依賴此功能。
有沒有辦法?
的EventDispatcher具有相當渺茫公共接口:
addEventListener
dispatchEvent
hasEventListener
removeEventListener
willTrigger
這意味着偵聽器的列表沒有公開。您只能說明是否至少有一個事件偵聽器用於特定類型的事件。
我會重新檢查你爲什麼需要做你想做的事情。在典型的Observer Pattern中,偵聽器列表不打算暴露。如果你試圖獲得這份清單,那麼我有一種強烈的感覺,那麼你正從一個錯誤的方向接近更高層次的問題。
你不行。您可以僅使用自定義組件並重寫addEventListener來收集信息。我真的不明白爲什麼猴子補丁不起作用。 Flex功能強大,但設計不佳,我想你必須忍受這一點。
+1。通常,當問這個問題時,更高級別的問題只是由於未被刪除的處理程序而導致的內存泄漏。 :) – back2dos 2010-06-23 12:52:13
@ back2dos也許通常情況下,我可以向你保證,這不是我的情況。 我想通過SWFLoader訪問一個已編譯的應用程序,並獲取特定對象上的所有事件偵聽器。 這個概念是構建一些測試框架。 @James EventDispatcher並沒有幫助我如此。謝謝 – KensoDev 2010-06-23 13:53:25