【问题标题】:See the event listeners in Flex/Flash builder debug在 Flex/Flash 构建器调试中查看事件侦听器
【发布时间】:2011-10-06 17:55:14
【问题描述】:

有人知道如何在 Flex 或 Flash 构建器的调试模式下查看任何组件的事件侦听器吗?

干杯,PK

【问题讨论】:

    标签: apache-flex actionscript-3 flex3 flash-builder flexbuilder


    【解决方案1】:

    没有简单的方法来枚举听众 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

    【讨论】:

    • 这没有解决问题?此外,编辑界面会破坏 playerglobal.swc 中内置的播放器方法
    • @Nate:是的,我的理解是,注册的侦听器不应该被检索,可能是因为 1- 侦听器没有以可跟踪的方式“注册”,而不是通过获取的方法的地址调用和 2- 这样的方法可以是匿名的。
    【解决方案2】:

    在名为的类上创建一个变量:

    私有变量 __numListeners:Number=0;

    然后创建一个 set 和 get 方法来编辑该变量... 并且每次添加或删除侦听器时,它都会使用该方法调整该 var...

    this.setNumListeners(1); or whatever
    

    那么就可以通过a访问了

    trace(someObject.getNumListeners())
    

    【讨论】:

    • 我很困惑这与原始问题有什么关系?
    • 如果我没记错的话,就会询问有关 flash builder 中的调试模式的问题,他想追踪添加到组件上的事件侦听器。如果没有用,请见谅。
    • @SWato Singh 原始发布者想要一个事件监听器列表;真的。但是原始问题中的任何内容都与跟踪语​​句无关。我不明白启用/禁用跟踪语句如何为他提供他想要的信息。 (除非他明确地在每个监听器中放置一个跟踪语句)。
    • @Flextras,你是对的,这是我最初的要求。
    • @Anoop 很抱歉误解了你的问题。
    【解决方案3】:

    如果不编辑应用中实现 IEventDispatcher 接口的所有组件,则无法快速完成此操作。

    如果播放器是开源的,那么您可以扩展 EventDispatcher 类以向其中添加跟踪语句,但事实并非如此。

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 2021-04-25
      • 1970-01-01
      • 2011-12-26
      相关资源
      最近更新 更多