AS3、AS4事件机制

 

Event (事件类):所有的事件对象都是flash.events.Event或者其子类.Event类作为创建Event对象的基类,当发生事件时,Event对象将作为参数传递给事件侦听器。

事件发送类(EventDispatcher):事件发送机制,EventDispatcher类是可分派事件的所有运行时类的基类,EventDispatcher类实现IEventDispatcher接口,并且是DisplayObject类的基类。EventDispatcher类允许显示列表上的任何对象都是一个事件目标,同样允许使用IEventDispatcher接口的方法。

该类还有两个公共方法:

1、    注册监听器addEventListener();

2、    删除监听器removeEventListener();

还有一个事件dispatchEvent();将自定义事件加入事件流。

事件阶段也就是事件流分三个阶段:

1、    捕获阶段(capture):查找事件的触发源。从根节点逐级向下追踪,直至找到。

2、    目标执行阶段(Target):事件的执行阶段。也就是处理事件流的代码。

3、    冒泡阶段(Bubble):第一阶段的逆过程。也就是事件执行完后,从目标节点逐级向父节点发出该事件直到根节点

事件的优先级(Event Priority)

    事件的优先级在添加一个事件时可以设置监听器的优先级,优先级越高,监听器的函数就会越早被调用。如果连个优先级相同的监听器,是由被添加的顺序来决定优先级的。

     事件可以看做一种触发机制,当满足了一定的条件后,会触发这个事件。

事件注册通道是只能在mxml的代码提示中可以看到的,他的作用是给mxml组件提供事件触发时所执行的方法的注册通道,而且能在代码提示中可见,这样给组件提供了很大的抽象的好处,我们可以很清楚的告诉组件的使用者,组件里包含哪些事件给你用。

 

事件分发:EventDispatcher

    最终继承自EventDispatcher的对象都会含有dispatchEvent这个方法,他有一个参数,事件对象。事件注册通道实际只是一个通道,事件都是有dispatchEvent来发出去的,通道只是一个管道而已。

    他的作用就是分发一个事件对象,他的分发是没有目的的,一种广播形式的,Flex的事件监听线程会接收到各种各样的事件(我们称之为捕获事件)

你可能感兴趣的:(Flex)