在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个参数中,type和listener是必须的参数。 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代表的含义是指定事件的类型。 |