Actionscript 3.0 事件机制剖析--The Event Flow
来源:互联网 发布:sql set statistics 编辑:程序博客网 时间:2024/04/25 07:51
Actionscript 3.0 事件机制剖析
-----The Event Flow
声明:欢迎任何人和组织转载本blog中文章,但必须标记文章原始链接和作者信息。
本文链接:http://blog.csdn.net/li_007/archive/2009/03/03/3953520.aspx
开拓进取的小乌龟------->CSDN点滴点点滴滴Blog
本篇blog来分析Actionscript 3中Event Flow机制,前提是你熟悉了解Actionscript 3中的Display List。在文中会详细介绍Actionscript 3的事件流的具体三个阶段,以及事件响应是怎么实现的。
从概念上来讲事件流分成了三个部分:
1、捕获阶段:此阶段包括从舞台到发送事件的目标对象的父节点之间的所以节点。
2、目标阶段:此阶段仅仅包括目标节点。
3、冒泡阶段:此阶段刚好和捕获阶段相反,包括从目标对象到舞台之间还回过程中所遇到的所有对象。
关于Adobe Docs对这些的描述截图为:
如下俩图,展示了一个显示列表中的Child1发送了事件,而后系统处理事件的过程。
Display List Three phase of the Event Flow
正是因为这样,所以我们可以在事件流的不同阶段来注册侦听器,实现高级的动画效果,在不同的对象之间实现灵活的消息处理。如果我们使用addEventListener注册侦听器的时候,第三个参数如果设置为默认,哪么事件就会在冒泡阶段被处理。设置为true的话,就会在捕获阶段来侦听处理事件,只有当目标对象侦听事件的时候,事件处理才会是在目标阶段。如果想要侦听事件流的整个过程,那就应该分别设置useCapture为true和false来注册侦听器。
下面的例子还是来自上一篇blog的fla,分别在root1,MovieClip,俩个Button和Static Text中注册了MouseEvent.CLICK的侦听器,代码实现如下:
测试结果截图如下:
结果分析:
当点击了圆形的按钮_btnCircle之后,首先swf的主文档类对象root1在捕获阶段监听并处理了Click消息,然后当Click消息流到达_mcChildren的时候,被_mcChildren捕获到并处理,同样因为eventPhase = 1是在捕获阶段,然后才是_btnCircle这个按钮本身在目标阶段监听并捕获。最后的两个输出是在冒泡阶段被root1和_mcChildren监听并捕获的。
- Actionscript 3.0 事件机制剖析--The Event Flow
- Actionscript 3.0 事件机制剖析(一)
- Actionscript 3.0 事件机制剖析--自定义事件实现
- Actionscript 3.0 事件机制剖析---事件发送方式(一)
- Actionscript 3.0 事件机制剖析---事件发送方式(二)
- Actionscript 3.0 事件机制剖析---事件发送方式(三)
- AS3 event flow 事件冒泡机制
- AS3 event flow 事件冒泡机制
- AS3 event flow 事件冒泡机制
- AS3 event flow 事件冒泡机制 以及 stopImmediatePropagation() stopPropagation()用法
- flex 事件机制-基于Actionscript 3.0
- AS3 event flow 事件冒泡机制 以及 stopImmediatePropagation() stopPropagation()用法 及useCapture的用法
- ActionScript事件模型实现机制
- 详细剖析 android onInterceptTouchEvent(MotionEvent event) 和 onTouchEvent(MotionEvent event) 的事件传递机制
- 详细剖析 android onInterceptTouchEvent(MotionEvent event) 和 onTouchEvent(MotionEvent event) 的事件传递机制
- The REMOVE_FROM_STAGE event flow in AS3
- Flex Event事件机制
- Event事件机制
- 浪潮之巅 第九章 硅谷的另一面 2. 嗜血之地
- LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
- 数据字典导出工具
- Open Cascade Vesion6.3/September 2008 : errors[1]
- LINQ体验(8)——LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
- Actionscript 3.0 事件机制剖析--The Event Flow
- C++ 对象是怎么死的?进程篇
- Struts1.2、Struts1.3和Struts2.0下Tiles的配置
- LINQ体验(9)——LINQ to SQL语句之Insert/Update/Delete操作
- [数据恢复答疑]删除了WINDOWS桌面上的文件,该如何恢复数据
- MOSS应用记录--5
- 放飞了一个机会。。。。
- 给TreeView添加复选框
- 浪潮之巅 第九章 硅谷的另一面 3.机会均等