命运践踏win

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
在鼠标事件中返回的事件对象有currentTarget和target两个属性,currentTarget指向的是添加这个事件侦听的对象本身currentTarget返回的是mc本身:mc.addEventListener(…),target返回的并不一定是mc本身

如有A和B,A.addChild(B)
A监听鼠标点击事件
那么当点击B时,target是B,currentTarget是A
也就是说,currentTarget始终是监听事件者,而target是事件的真正发出者,可以这么理解target返回的是鼠标当前侦听的对象中最底层的事件接收元件.不管嵌套了多少层.都返回当前事件侦听对象的最底层的元件对象.

网上资料:

(flash事件对象的target与currentTarget属性
事件对象是Event类的实例,具有多个属性,其中target与currentTarget属性必须把它们分精楚。 
对于一个简单的事件处理过程,分清target与currentTarget并没有必要,因为它们一般指向同一个对象,如对一个简单的mc容器注册侦听器,在处理事件过程中,这两个属性都指向了这个mc。 
但在一个相对复杂的display list中,这两属性是不相同的,比如,在主场景中有一个实例名为mc的影片剪辑实例,此mc包含了一个子mc,假设实例名为mc1 
如果为父级即mc注册一个click事件侦听器,当单击mc时,target与currentTarget都指向mc,当单击mc1时,target指向mc1,而currentTarget指向mc,因此,在很多应用中,可能有人会认为currentTarget会指向父级。 
如果为子级和父级都注册一个侦听器,那target是指单击的目标,而currentTarget是指在处理事件(即活动)的目标,因为as3的事件处理有3个阶段(捕获、目标、冒泡),并且缺省时采用冒泡机制,当单击子级mc1时,currentTarget应先指向底层,并向上冒泡,即先指向mc1,再指向mc 
所以,currentTarget属性应具备两条件,一是它注册了侦听器,二是正在处理事件,而target就指事件流中的target。例如,单击了mc1,不管事件如何冒泡(不管currentTarget指向谁),target都指向mc1, 
小结:target属性在事件流的目标阶段,而currentTarget属性在事件流的冒泡阶段(如currentTarget有时指父级)和目标阶段(两属性的指向相同),当然也可以是捕获阶段。)……

 

 
 
posted on 2012-10-24 21:20  命运践踏win  阅读(196)  评论(0编辑  收藏  举报