【发布时间】:2011-10-06 17:55:14
【问题描述】:
有人知道如何在 Flex 或 Flash 构建器的调试模式下查看任何组件的事件侦听器吗?
干杯,PK
【问题讨论】:
标签: apache-flex actionscript-3 flex3 flash-builder flexbuilder
有人知道如何在 Flex 或 Flash 构建器的调试模式下查看任何组件的事件侦听器吗?
干杯,PK
【问题讨论】:
标签: apache-flex actionscript-3 flex3 flash-builder flexbuilder
没有简单的方法来枚举听众 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
【讨论】:
在名为的类上创建一个变量:
私有变量 __numListeners:Number=0;
然后创建一个 set 和 get 方法来编辑该变量... 并且每次添加或删除侦听器时,它都会使用该方法调整该 var...
this.setNumListeners(1); or whatever
那么就可以通过a访问了
trace(someObject.getNumListeners())
【讨论】:
如果不编辑应用中实现 IEventDispatcher 接口的所有组件,则无法快速完成此操作。
如果播放器是开源的,那么您可以扩展 EventDispatcher 类以向其中添加跟踪语句,但事实并非如此。
【讨论】: