`
kael____
  • 浏览: 18496 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

flex currenTarget与 target 的区别

    博客分类:
  • flex
阅读更多

开始学习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了,在实际编程中实践几次,就不会感到迷惑了。

分享到:
评论

相关推荐

    Flex3与flex4的区别

    Flex_3_与_Flex_4_之间的区别

    Flex3与Flex4对比

    介绍了Flex3与Flex4的功能区别,并介绍了Flex4的新增功能。

    flex4与Java通信实例

    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特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效

    Flex与java通讯

    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简介Flex简介Flex简介

    flex事件flex事件flex事件flex事件

    flex事件flex事件flex事件flex事件flex事件

    Flex与Java实现通信

    Flex与Java实现通信,Flex与Java实现通信,Flex与Java实现通信

    flex精通 flex接口

    flex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex学习的好资源啊

    Flex与ActionScript3程序开发

    Flex与ActionScript3程序开发》一书由易到难、由浅人深、循序渐进地介绍了Flex与ActionScript3程序开发的一般步骤与常用的程序技巧,内容通俗易懂,使用大量实例贯穿全书,力求以实战的形式让读者快速掌握知识点。...

    Flex与java集成

    flex_spring_blazeDS 项目是flex spring blazeDS 通过配置文件完成flex与java通信的可以正常运行的实例。该源码在flex4与MyEclipse环境下整合成功,实现了Flex、spring、blazeDS的整合。

    [Flex与ActionScript.3程序开发].陈爽,付凯.扫描版

    相信读者在学习完《Flex与ActionScript 3程序开发》后,在使用Flex进行组件开发和数据处理、使用Flex高效制作皮肤、将Flex与Flash紧密结合、使用Flex与服务器端语言通信、对Flex应用进行优化等方面都会有深刻的理解...

    Flex万年历记事本_flex源码

    Flex万年历记事本_flex源码

    Flex 组件Flex 组件Flex 组件

    Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件

    flex与java通信

    flex与java通信

    win+vs+flex+bison+demos+flex与bison中文版.pdf.zip

    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设计模式flex设计模式flex设计模式flex设计模式

Global site tag (gtag.js) - Google Analytics