`

hasEventListener()与willTrigger()区别

阅读更多

 

hasEventListener()方法:

检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。

willTrigger()方法:

检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器.

hasEventListener() 与 willTrigger()的区别是:hasEventListener() 只检查它所属的对象,而 willTrigger() 检查整个事件流以查找由type参数指定的事件。

为了判断事件流的上游是否能处理某个事件,应该借助“willTrigger()”方法进行检查。当事件流的节点对象调用“willTrigger()”方法后,不仅检查调用该方法的对象,同时还会检查该对象的上游节点。如果发现相应的事件侦听器,则返回true。“willTrigger()”方法虽然简单,但是不能提供确切的事件侦听器数目。

 

如果在代码中遍历事件流对象,并配合“hasEventListener()”方法,能够获得某个事件的侦听器数量。

 

<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  
applicationComplete="init();">   
       
    <mx:Script>   
        <!--[CDATA[         
            private function init():void {     
                this.stage.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);     
//              btn1.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);   
       
                trace("hasEventListener: " + btn1.hasEventListener(MouseEvent.MOUSE_OUT));   
                trace("willTrigger: " + btn1.willTrigger(MouseEvent.MOUSE_OUT));   
            }   
               
            private function onMouseOut(event:MouseEvent):void {   
                //   
            }   
        ]]-->   
    </mx:Script>   
    <mx:Button x="183" y="242" label="Button" width="180" height="100" id="btn1"/>   
</mx:Application> 

 

 

输出:

 

hasEventListener: false

willTrigger: true

分享到:
评论

相关推荐

    Flex Event总结

    8. **hasEventListener()与willTrigger()**:`hasEventListener()`检查当前对象是否注册了指定事件的监听器,而`willTrigger()`不仅检查当前对象,还会遍历整个事件流,看是否有任何对象处理该事件。 9. **keyCode...

    tweenjs.min.js文件

    b.dispatchEvent=a.dispatchEvent,b._dispatchEvent=a._dispatchEvent,b.willTrigger=a.willTrigger},a.addEventListener=function(a,b,c){var d;d=c?this._captureListeners=this._captureListeners||{}:this._...

    AS3.0 TLFTextField 组件库

    * TLFTextField 对象与 TextField 对象类似,但 TLFTextField 对象可以利用 flashx 包中包含的 TLF 类的属性和方法。TLF 提供了大量格式选项和功能。 * @author */ public class STLFTextField extends ...

    wc-eventdispatcher:ES6 WebCraft EventDispatcher

    hasEventListener( type, listener ) type :字符串。 无法检查RegExp侦听器。 listener :功能。 removeEventListener( type, listener ) type :字符串|| [ ...细绳 ]。 RegExp侦听器无法删除。 listener :功能...

    基于freeRTOS和STM32F103x的手机远程控制浴室温度系统设计源码

    该项目是一款基于freeRTOS操作系统和STM32F103x微控制器的手机远程控制浴室温度系统设计源码,共包含1087个文件,包括580个C语言源文件、269个头文件、45个汇编源文件、36个数据文件、36个目标文件、35个编译规则文件、28个包含文件、27个文本文件、6个源文件、3个归档文件。此系统通过手机远程实现对浴室温度的有效控制,适用于智能浴室环境管理。

    LABVIEW程序实例-web写数据.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    LABVIEW程序实例-前面板对象常用属性.zip

    labview程序代码参考学习使用,希望对你有所帮助。

    LABVIEW程序实例-通过全局变量发送数据.zip

    labview程序代码参考学习使用,希望对你有所帮助。

Global site tag (gtag.js) - Google Analytics