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的事件监听线程会接收到各种各样的事件(我们称之为捕获事件) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |