加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

target和currentTarget的区别

发布时间:2020-12-15 01:38:49 所属栏目:百科 来源:网络整理
导读:target和currentTarget的区别 开始学习Flex,会在别人的代码中经常看到target和currentTarget这两个属性,一般是event.target、event.currentTarget,那他们两个有什么区别呢? 简单说,target是事件的调用对象(event dispatcher),currentTarget是事件的处

target和currentTarget的区别

开始学习Flex,会在别人的代码中经常看到target和currentTarget这两个属性,一般是event.target、event.currentTarget,那他们两个有什么区别呢?

简单说,target是事件的调用对象(event dispatcher),currentTarget是事件的处理对象(event processor)

以一个实例来说吧
?1? <? xml?version="1.0"?encoding="utf-8" ?>
?2? < mx:Application? xmlns:mx ="http://www.adobe.com/2006/mxml" ?layout ="vertical" ?name ="app"
?3? ????initialize ="init()" >
?4? ????
?5? ???? < mx:Button? id ="btn" ?name ="btn" ?label ="按钮1" />
?6? ????
?7? ???? < mx:Button? id ="btn2" ?name ="btn2" ?label ="按钮2" ?click ="clickHandler(event)" ? />
?8? ????
?9? ???? < mx:Script >
10? ???????? <![CDATA[
11? ????????????import?mx.controls.Alert;
12? ????????????private?function?init():?void
13? ????????????{
14? ????????????????addEventListener(MouseEvent.CLICK,?clickHandler);?????????????????
15? ????????????}
16? ????????????
17? ????????????private?function?clickHandler(event:?MouseEvent):?void
18? ????????????{
19? ????????????????Alert.show("target:?"?+?(event.target?as?DisplayObject).name
20? ????????????????????+?"ncurrentTarget:?"?+?(event.currentTarget?as?DisplayObject).name);
21? ????????????}
22? ???????? ]]>
23? ???? </ mx:Script >
24? </ mx:Application >
25?

说明:
  1. 点击btn,btn是事件发送者,因此,target是btn;
  2. app注册了事件监听器,用于监听MouseEvnet.Click事件,是事件处理者,因此currentTarget是app
  3. btn2自己注册了click事件,那么btn2既是事件发送者,又是处理者,因此,target和currentTarget都是btn2,这种情况下,两者是一致的
  4. 同时注意,由于app注册了鼠标点击事件,在点击btn2的时候,首先响应的是app的处理器,然后才是btn2的处理器
通过上面的分析,应该比较清楚的区分什么时候用target,什么时候用currentTarget了,在实际编程中实践几次,就不会感到迷惑了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读