currentTarget 与 Target 的区别
在一般情况下,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 的区别的更多相关文章
- Flex的 Event中属性currentTarget与target的区别
Flex的 Event中属性currentTarget与target的区别 1.区别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...
- 第九课-1 事件的状态Event 对象 ,事件,元素,节点的关系,事件委托currentTarget与target的区别
<ul> <li>1itme1</li> <li>2itme2</li> <li>3itme3</li> <l ...
- target与currentTarget与this的区别
target与currentTarget与this的区别: target在事件流的目标阶段:currentTarget在事件的捕获.目标及冒泡阶段. 只有当事件流处在目标阶段的时候,二者的指向才是一致 ...
- 对象this、currentTarget和target
在事件处理程序内部,对象this始终等于currentTarget的值,而target则只包含事件的实际目标.如果直接将事件处理程序指定给了目标元素,则this.currentTarget和targe ...
- jquery中this和event.target的区别
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Flex的 Event中属性currentTarget与target的差别
Flex的 Event中属性currentTarget与target的差别 1.差别 (1)currentTarget是事件的处理对象(event processor) (2)target是事件的调用 ...
- event.currentTarget和event.target的区别
currentTarget始终是监听事件者,而target是事件的真正发出者.
- minSdkVersion maxSdkVersion targetSdkVersion target 的区别
minSdkVersion 描述:app最低支持的sdk版本号 作用:如果手机SdkVersion小于app中定义的minSdkVersion,则android系统不允许安装该app 定义位置:And ...
- Javascript中event.srcElement和event.target的区别
event.srcElement 可以捕获当前事件作用的对象,如event.srcElement.tagName可以捕获活动标记名称.注意获取的标记都以大写表示,如"TD",&qu ...
随机推荐
- android左右滑动加载分页以及动态加载数据
android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: package cn.anycall.ju; import java.util.ArrayList; import java ...
- 《C++ primer》--第11章
习题11.1 algorithm头文件定义了一个count的函数,其功能类似于find.这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果.编写程序读取一系列int型数据,并将它们存储 ...
- XTUOJ1250 Super Fast Fourier Transform 暴力
分析:因为加起来不超过1e6,所以最多有1000+个不同的数 做法:离散化搞就好了 #include <cstdio> #include <iostream> #include ...
- TRANSLATE
语法格式: TRANSLATE(expr, from_string, to_string) 示例如下: SELECT TRANSLATE('ab 你好 bcdefg', 'abcdefg', '123 ...
- matlab的&和&&操作
A&B(1)首先判断A的逻辑值,然后判断B的值,然后进行逻辑与的计算.(2)A和B可以为矩阵(e.g. A=[1 0],B=[0 0]).A&&B(1)首先判断A的逻辑值,如果 ...
- Android版本判断
尽管Android向下兼容不好,但是一个程序还是可以在多个平台上跑的.向下兼容不好,接口改变,新的平台上不能用旧的API,旧的平台更不可能用新的API,不等于一个平台需要一个APK.可以在高版本的SD ...
- Google AppEngine 创建的例子
1.guestbook: http://chenyy-gac-test.appspot.com/ 2.time clock: http://chenyy-gac-20150922.appspot.co ...
- Layout No collapsible
center 不可折叠 其它的,没有 title 没法折叠 title 使用子控件的
- Apache Spark GraphX的使用简介
类似 Spark 在 RDD 上提供了一组基本操作符(如 map, f ilter, reduce), GraphX 同样也有针对 Graph 的基本操作符,用户可以在这些操作符传入自定义函数和通过修 ...
- 软件工程——PairProject
结对编程组员: 马辰 11061178 柴泽华 11061153 1) 照至少一张照片, 展现两人在一起合作编程的情况. 结对编程的优点 1)在编程过程中,任何一段代码都不断地复审,同 ...