开始学习Flex,会在别人的代码中经常看到target和currentTarget这两个属性,一般是event.target、event.currentTarget,那他们两个有什么区别呢?
简单说,target是事件的调用对象(eventdispatcher),currentTarget是事件的处理对象(eventprocessor)
下面贴一个实例:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="init()"
name="application"
>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<s:Button id="btn01" name="btn01" label="button1"/>
<s:Button id="btn02" name="btn02" label="button2" click="clickHandle(event)"/>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
private function init():void {
addEventListener(MouseEvent.CLICK,clickHandle);
}
private function clickHandle(event:MouseEvent):void {
Alert.show("target: "+(event.target as DisplayObject).name+" \ncurrentTarget: "+(event.currentTarget as DisplayObject).name);
}
]]>
</fx:Script>
</s:Application>
说明:
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了,在实际编程中实践几次,就不会感到迷惑了。
分享到:
相关推荐
Flex_3_与_Flex_4_之间的区别
介绍了Flex3与Flex4的功能区别,并介绍了Flex4的新增功能。
flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. 软件环境:windows7+... 3 flex与webservice交互WebService
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效
Flex与java通讯 Flex与java通讯
Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...
Flex简介Flex简介Flex简介Flex简介Flex简介
flex事件flex事件flex事件flex事件flex事件
Flex与Java实现通信,Flex与Java实现通信,Flex与Java实现通信
flex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex学习的好资源啊
Flex与ActionScript3程序开发》一书由易到难、由浅人深、循序渐进地介绍了Flex与ActionScript3程序开发的一般步骤与常用的程序技巧,内容通俗易懂,使用大量实例贯穿全书,力求以实战的形式让读者快速掌握知识点。...
flex_spring_blazeDS 项目是flex spring blazeDS 通过配置文件完成flex与java通信的可以正常运行的实例。该源码在flex4与MyEclipse环境下整合成功,实现了Flex、spring、blazeDS的整合。
相信读者在学习完《Flex与ActionScript 3程序开发》后,在使用Flex进行组件开发和数据处理、使用Flex高效制作皮肤、将Flex与Flash紧密结合、使用Flex与服务器端语言通信、对Flex应用进行优化等方面都会有深刻的理解...
Flex万年历记事本_flex源码
Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件
flex与java通信
Visual Studio中创建Flex+Bison项目,源码中包含多个vs2010可编译通过的demo,用win_flex_bison-2.5.18 其中包含《Visual Studio中创建Flex+Bison项目.pdf》学习flex bison入门资料《flex与bison中文版.pdf》
flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式flex设计模式