精通Flex 3.0――4.8.4 事件监听管理

 在ActionScript 3.0中通过接口IEventDispatcher来管理事件监听函数。Flash Palyer中的EventDispatcher类扩展了此接口。EventDispatcher作为基类为所有类提供服务,这些类可以使事件目标类或者是事件流中的一部分。例如,DisplayObject类继承至EventDispatcher,这也就意味着任何DisplayObject中的对象都可以访问IEventDispatcher 中定义的方法。接口IEventDispatcher中定义了五个方法,代码如下。参数说明如表4.10所示。

package flash.events

Handling 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;

}

}

接口类IEventDispatcher中方法介绍

名称

参数

说明

public function addEventListener():void

type:String

listener:function

useCapture:Boolean=false

priority:Integer=0

useWeakReference:Boolean=false

此方法的作用是为EventDispatcher注册一个事件监听对象。这个方法的5个参数中,typelistener是必须的参数。

type代表的含义是指定事件的类型。

listener代表的含义是当事件发生的时候指定监听事件的函数。

useCapture指定监听工作是在获取阶段进行还是在目标阶段和起泡阶段进行,默认值为false,当useCapture设置为ture时指定监听器处理事件仅仅事件流中的获取阶段执行,当useCapture设置为false时指定监听器处理事件在目标阶段或者起泡阶段进行,如果想在三个阶段都可以进行事件的监听,那么就需要调用addEventListener()方法两次,第一次将useCapture属性设置为true,第二次将这个属性的值设置为false

Priority属性代表的含义是事件监听的优先级。这个属性的类型为整数类型,默认值为0,值越高,优先级越高,多个事件监听优先级相同的情况下,按照这些事件监听的添加顺序进行处理。

useWeakReference属性代表监听器的引用是强引用,还是弱应用,强引用方式必须通过garbage-collected(垃圾回收器)进行销毁,弱关系引用不需要,此属性的默认值为false

public function dispatcherEvent():Boolean

event:Event

此方法的作用是发派一个事件对象到事件流中。

event代表的含义是事件对象。

public function hasEventListener():Boolean

type:String

此方法的返回值如果是ture表示在指定的显示对象中为指定的事件类型能够找到监听器。

type代表的含义是事件的类型。

public function removeEventListener():void

type:String

listener:function

useCapture:Boolean=false

此方法的作用是从EventDispatcher移除监听器。如果此EventDispatcher对象中不包含任何监听器,那么调用此方法没有任何效果。

type代表的含义是指定事件的类型。

listener代表的含义是当事件发生的时候指定监听事件的函数。

useCapture代表的含义是指定监听器是否在获取阶段或者目标和起泡阶段被注册。如果监听器在三个阶段都被注册,那么就要调用两次removeEventListener(),第一次调用时候设置useCapture值为true,第二次设置为false。方法的默认值为false

public function willTrigger():Boolean

type:String

willTrigger()的作用与hasEventListener()方法很相似,如果在指定的显示对象中为指定的事件类型能够找到监听器,这个方法返回值为ture,这个方法还可以去检查在整个事件流中对于指定的事件类型是否能够找到监听器。

type代表的含义是指定事件的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值