在一般情况下,target与currentTarget指向的是同一个对象。一般情况是指我们只对某一个独立的mc添加侦听器。如下:

var mc:Sprite=new Sprite();
addChild(mc);
mc.x=300,mc.y=300;
mc.graphics.beginFill(0×000000);
mc.graphics.drawRoundRect(0,0,50,50,10,10);
mc.name=”圆角矩形mc”;

mc.addEventListener(MouseEvent.CLICK,clickF);
function clickF(e) {
 trace(“target:”+e.target.name);
 trace(“currentTarget:”+e.currentTarget.name);
}

//输出中可以看出,target与currentTarget均指向”圆角矩形mc”

  特殊情况是指,有两个容器实例:sp1和sp2,且sp2装在sp1之中,即sp1.addChild(sp2)。然后分别给sp1和sp2添加侦听器,此时target与currentTarget的指向是较复杂的。见下面的代码:

var sp1:Sprite=new Sprite();
addChild(sp1);
sp1.x=100;
sp1.y=50;
sp1.name=”sp1方形”;

var sp2:Sprite=new Sprite();
sp1.addChild(sp2);
sp2.x=100;
sp2.y=50;
sp2.name=”sp2圆形”;

sp1.graphics.beginFill(0xff0000);
sp1.graphics.drawRect(0,0,50,50);

sp2.graphics.beginFill(0×0000ff);
sp2.graphics.drawCircle(0,0,25);

sp1.addEventListener(MouseEvent.CLICK,clickFunc);
//sp2.addEventListener(MouseEvent.CLICK,clickFunc);
function clickFunc(e) {
trace(“target:”+e.target.name);
trace(“currentTarget:”+e.currentTarget.name)
}

  代码是给父容器添加了侦听器,这里又分两种情况:一、点击sp1,输出target与currentTarget均指向sp1;二、点击sp2,输出target指向sp2,currentTarget指向sp1(即父容器);

  将sp1.addEventListener(MouseEvent.CLICK,clickFunc);注释掉,再打开sp2.addEventListener(MouseEvent.CLICK,clickFunc);的注释,此时也可分两种情况:一、点击sp1,结果没有反应,因为并未给它添加侦听器;二、点击sp2,输出target与currentTarget均指向sp2(很好理解,也因为它的父级容器没有添加侦听)。

  将以上为sp1和sp2注册侦听器的语句都打开,点击sp1会怎样?点击sp2呢?

  点击sp1输出:

target:sp1方形
  currentTarget:sp1方形

  点击sp2输出:

target:sp2圆形
  currentTarget:sp2圆形
target:sp2圆形
  currentTarget:sp1方形

  说明父级和子级都添加侦听的情况下,点击子级,不仅它本身能侦听到,它的父级也可以侦听到。

由上面可以得出..当使用事件的时候,只需注意addEventListener者 和 使用currentTarget.就不会出现错误...

currentTarget 与 Target 的区别的更多相关文章

  1. Flex的 Event中属性currentTarget与target的区别

    Flex的 Event中属性currentTarget与target的区别 1.区别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...

  2. 第九课-1 事件的状态Event 对象 ,事件,元素,节点的关系,事件委托currentTarget与target的区别

    <ul> <li>1itme1</li> <li>2itme2</li> <li>3itme3</li> <l ...

  3. target与currentTarget与this的区别

    target与currentTarget与this的区别: target在事件流的目标阶段:currentTarget在事件的捕获.目标及冒泡阶段. 只有当事件流处在目标阶段的时候,二者的指向才是一致 ...

  4. 对象this、currentTarget和target

    在事件处理程序内部,对象this始终等于currentTarget的值,而target则只包含事件的实际目标.如果直接将事件处理程序指定给了目标元素,则this.currentTarget和targe ...

  5. jquery中this和event.target的区别

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Flex的 Event中属性currentTarget与target的差别

    Flex的 Event中属性currentTarget与target的差别 1.差别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...

  7. event.currentTarget和event.target的区别

    currentTarget始终是监听事件者,而target是事件的真正发出者.

  8. minSdkVersion maxSdkVersion targetSdkVersion target 的区别

    minSdkVersion 描述:app最低支持的sdk版本号 作用:如果手机SdkVersion小于app中定义的minSdkVersion,则android系统不允许安装该app 定义位置:And ...

  9. Javascript中event.srcElement和event.target的区别

    event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称.注意获取的标记都以大写表示,如"TD",&qu ...

随机推荐

  1. spring中的BeanFactory与ApplicationContext的作用和区别?

    BeanFactory类关系继承图 1. BeanFactory类结构体系: BeanFactory接口及其子类定义了Spring IoC容器体系结构,由于BeanFactory体系非常的庞大和复杂, ...

  2. Android基于基于布局嵌套的页面导航实现

    页面如下: 主页面的布局分隔为三部分: 注意观察上面标记为红色的android:id均采用android系统默认的名称: 页面的导航组件: <?xml version="1.0&quo ...

  3. Android入门:发送HTTP的GET和POST请求

    HTTP的请求详解在我的博客中已经讲解过: http://blog.csdn.net/xiazdong/article/details/7215296 我在http://blog.csdn.net/x ...

  4. ant 安装过程中问题记录

    最近在本机安装ant过程中出现一些问题,在此记录一下. 1.Unable to locate tools.jar. Expected to find it in C:/Program Files/Ja ...

  5. 使用k-means对3D网格模型进行分割

    使用k-means对3D网格模型进行分割 由于一些原因,最近在做网格分割的相关工作.网格分割的方法有很多,如Easy mesh cutting.K-means.谱分割.基于SDF的分割等.根据对分割要 ...

  6. Python闭包与javascript闭包比较

    实例一 python def line_conf(): def line(x): return 2*x+1 print(line(5)) # within the scope     line_con ...

  7. JAVA中的数据结构——集合类(线性表:Vector、Stack、LinkedList、set接口;键值对:Hashtable、Map接口<HashMap类、TreeMap类>)

    Java的集合可以分为两种,第一种是以数组为代表的线性表,基类是Collection:第二种是以Hashtable为代表的键值对. ... 线性表,基类是Collection: 数组类: person ...

  8. ReactNative 踩坑小计

    使用ES6語法編寫Component時綁定事件需要用this.MethodName.bind(this),否則MethodName中無法使用this <TouchableHighlight on ...

  9. JDBC学习笔记(5)——利用反射及JDBC元数据编写通用的查询方法

    JDBC元数据 1)DatabaseMetaData /** * 了解即可:DatabaseMetaData是描述数据库的元数据对象 * 可以由Connection得到 */ 具体的应用代码: @Te ...

  10. AngularJS 学习笔记一

    ng-app 指令 ng-app 指令定义了 AngularJS 应用程序的 根元素. ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序. 稍后您将学习到 ng-app 如何通过一个 ...