`
kael____
  • 浏览: 18989 次
  • 性别: 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的区别

    Flex4与Flex3之间的主要区别在于其引入的新组件和外观架构——Spark,以及在布局管理、状态使用、效果实现等方面的改进。虽然从Flex3迁移到Flex4需要一些调整,但总体来说,Flex4提供了一系列增强功能,旨在提高开发...

    Flex3与Flex4对比

    本文旨在详细介绍Flex3与Flex4之间的主要区别,特别是Flex4相较于Flex3的新功能与改进之处。通过对比分析,帮助开发者更好地理解两者之间的差异,从而根据项目需求选择最适合的技术栈。 #### 二、功能区别 ##### 1...

    flex与bison(中文版)带目录

    在"Flex与Bison(中文版)"这本书中,读者可以学习到如何使用这两个工具来构建自己的语言解析器。书本内容可能包括: 1. **基础概念**:介绍词法分析和语法分析的基本原理,以及编译器和解释器的工作流程。 2. **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布局相关的JavaScript事件或者是在Flex容器中发生的交互事件。然而,由于提供的信息较少,无法明确具体是指哪些特定的事件。下面,我将详细介绍Flex布局的基础知识以及可能与之...

    flex flex和 java交互

    标题"flex 和 java交互"指出了一个关键的技术融合,即Flex与Java的整合,允许Flex前端与Java后端进行数据和功能的通信。这种交互通常是通过AMF(Action Message Format)协议实现的,它提供了一种高效的数据序列化...

    FLEX特效FLEX特效FLEX特效FLEX特效

    9. **Flex与RIA**:作为RIA技术的一部分,Flex允许开发者创建离线应用、实时通信应用、数据可视化应用等,极大地提升了Web应用的功能和用户体验。 10. **现代Web发展趋势**:虽然现在HTML5、CSS3和JavaScript等技术...

    flex4与Java通信实例

    Flex4与Java通信是开发富互联网应用程序(RIA)时的一项重要技术,允许前端用户界面与后端业务逻辑之间进行高效的数据交换。在本实例中,我们探讨了三种Flex4与Java交互的方式:通过RemoteObject、HTTPService以及...

    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源码

    1. **MXML与ActionScript**:Flex应用主要由两种语言编写,MXML用于定义组件结构和界面布局,而ActionScript则处理逻辑和业务代码。在"万年历记事本"的源码中,MXML文件可能包含了日历视图和记事本界面的定义,而...

    flex与java结合开发

    - 在Target runtime中选择合适的Flex SDK版本。 - Context root建议直接使用项目名称,例如`testflex`。 - Content folder设置为`WebRoot`,便于统一管理资源。 - Flex War file中选择已下载的BlazeDs.war文件,...

    Flex与Java整合demo

    【Flex与Java整合】是将Adobe Flex前端UI技术与Java后端服务进行集成,实现富互联网应用程序(RIA)的一种常见方法。本篇文章主要探讨如何在实际操作中配置Flex与Java的整合。 首先,你需要准备以下资源: 1. **...

    flex 与java后台整合 PPT

    在“flex 与java后台整合 PPT”这个主题中,我们将探讨如何将Flex前端与Java后端集成,以实现高效的数据通信和应用交互。Flex与Java的整合主要依赖于AMF(Action Message Format)协议,它允许Flex客户端与Java...

    Flex简介Flex简介Flex简介Flex简介

    Flex是Adobe公司推出的一种用于构建富互联网应用(Rich Internet Applications,简称RIA)的技术产品,它主要服务于企业级应用开发。Flex旨在提供一个强大的工具集,用于创建具有高度交互性和视觉吸引力的用户界面,...

    flex与bison安装包

    安装过程与Bison类似,完成后也需要将Flex的可执行文件路径添加到系统路径。Flex的2.5.4a版本是一个稳定版本,能够处理大量的词法分析任务。 在安装这两款工具后,开发者可以开始为QGIS编写词法分析器(由Flex生成...

    Flex 组件Flex 组件Flex 组件

    而"ServerObject"可能是与服务器端通信相关的类或服务,用于处理数据的存储和检索,或者实现Flex应用与后端系统的集成。 在Flex组件的开发过程中,开发者还需要了解ActionScript,这是Flex的主要编程语言,基于...

    flex学习笔记 flex学习总结 flex学习教程

    2. **Flex SDK与Flex Builder**:Flex SDK是开发Flex应用的基础工具,包含了编译器和库。Flex Builder(现已被Adobe Flash Builder取代)是一个集成开发环境,提供了代码提示、调试和项目管理等功能,使得开发更加...

    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 ...

    C#与flex交互

    标题中的"C#与Flex交互"指的是在开发过程中,使用C#作为后端处理逻辑,而Flex作为前端用户界面,两者之间进行数据和功能的通信。Flex是一种基于Adobe AIR和Flash Player运行时的开源框架,主要用于构建富互联网应用...

Global site tag (gtag.js) - Google Analytics