- 浏览: 88141 次
- 性别:
- 来自: 北京
-
最新评论
-
A5121612886:
好文要顶!
Flash Builder 编译器选项 -
谁在哀伤望月:
非常好,谢谢分享
Flash builder4 插件终极破解方法
在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数。通过这个参数就可以使用事件类的属性和方法。其中target与currentTarget属性是两个很相似的属性。
对于简单的事件处理过程,分清target与currentTarget并没有必要。因为它们一般指向同一个对象。例如,舞台中有一个实例名为mc的影片剪辑实例,通过下面的代码为这个实例注册单击事件。
mc.addEventListener(MouseEvent.CLICK,this.test);
function test(e:MouseEvent)
{
trace(e.target.name,e.currentTarget.name);
}
输出结果是一样的,target与currentTarget属性都是引用舞台中的影片剪辑实例。但在一个相对复杂的显示列表中,这两个属性是不相同的。
下面通过例子来了解target与currentTarget属性的异同
1、新建Flash文档
2、改图层1名为as,单击图层的第1帧,打开动作面板,输入代码: var sp1:Sprite=new Sprite() ;
var sp2:Sprite=new Sprite() ;
this.addChild(sp1) ;
sp1.addChild(sp2) ;
drawRect(sp1,0xff0000,200) ;
drawRect(sp2,0x0000FF,100);
//绘制矩形
function drawRect(obj:DisplayObject,c:uint,l:int):void;
{
obj.graphics.beginFill(c) ;
obj.graphics.drawRect(0,0,l,l) ;
}
上面的代码在主时间轴中创建了Sprite类的实例sp1,在sp1实例内又创建了Sprite类的实例sp2。如果为父级sp1注册一个单击事件侦听
器,当单击sp1时,target与currentTarget都指向sp1,当单击sp2时,target指向sp2,而currentTarget指
向sp1。因此在很多应用中,一般认为currentTarget指向父级。代码如下: sp1.name=”sp1″;
sp2.name=”sp2″;
sp1.addEventListener(MouseEvent.CLICK,clickFunc);
function clickFunc(e:MouseEvent):void
{
trace(e.target.name,e.currentTarget.name);
}
3、测试影片,分别单击大小矩形,查看信息
如果为子级和父级都注册一个侦听器,那target属性是指单击的目标,而currentTarget属性是指在处理的事件即活动目标,因为3.0的事
件处理有捕获、目标、冒泡3个阶段,并且默认时采用冒泡机制,当单击子级时,currentTarget属性应先指向目标,并向上冒泡,就是先指向
sp2,再指向sp1。
为程序增加sp2注册事件侦听器: sp1.addEventListener(MouseEvent.CLICK,clickFunc);
sp2.addEventListener(MouseEvent.CLICK,clickFunc);
function clickFunc(e:MouseEvent):void
{
trace(e.target.name,e.currentTarget.name);
}
因此,currentTarget属性应具备两个条件,一是它注册了侦听器,二是正在处理事件,而target属性就指事件流中的目标,例如,单击了sp2,不管事件如何冒泡或说不管currentTarget指向谁,target都指向sp2。
target属性在事件流的目标阶段,而currentTarget属性在事件流的冒泡阶段、目标阶段和捕获阶段。以单击事件为例,只有事件流处于目标
阶段时,currentTarget属性与target属性的指向才相同,当事件流处于冒泡阶段和捕获阶段时,target属性总是指向被单击的对象,而
currentTarget属性指向当前事件活动的对象。
即使在没有发生事件流的处理时,有时也需区别target和currentTarget属性,比如在舞台中创建mc1,在mc1中又创建mc2,且mc2位于mc1的上面。
当对父级对象即mc1处理事件时,使用下面的代码1: mc1.addEventListener(MouseEvent.CLICK,fun)
function fun(e:MouseEvent)
{
trace(e.target.name)
}
测试影片时,单击mc1,输出mc1,单击mc2,则输出mc2。如果要使用e.target属性始终指向mc1,可以使用容器对象的mouseChildren属性:
mc1.mouseChildren = false;
当mc1的mouseChildren属性被设置成 false后,mc1的子级对象将不能处理鼠标事件,此时不管单击mc1还是mc2输出的都是mc1。代码2: mc1.mouseChildren=false
mc1.addEventListener(MouseEvent.CLICK,fun)
function fun(e:MouseEvent)
{
trace(e.target.name)
}
由于currentTarget属性指向当前事件活动的对象,而mc1注册了单击事件,mc2没有注册单击事件,即mc1的事件是活动的。因此不管单击mc1还是mc2,currentTarget属性肯定指向mc1。
代码3; mc1.addEventListener(MouseEvent.CLICK,fun)
function fun(e:MouseEvent)
{
trace(e.currentTarget.name)
}
发表评论
-
全面提升你的程序效率 之细说 bitmapdata AS3 Bitmap 抠图(透明部分)和碰撞(点击)检测
2012-06-05 09:54 7289如果你是刚接触as编程 ... -
AS3动态获得类名及类的方法
2012-05-08 13:50 28581.获得某个实例对象的类名:getQualifiedClass ... -
Flash Builder 编译器选项
2012-05-02 10:30 6481-benchmark 输出性 ... -
【AS3】为什么AS3.0事件流机制会有捕获阶段、目标阶段、冒泡阶段三个阶段
2012-04-26 10:03 3891原问题:事件机制有三个步骤,捕获,目标和冒泡。请问,在目标阶段 ... -
[AS3]事件流那点事儿
2012-04-26 09:36 1285在群里有人问了个问 ... -
Socket+AMF3粘包问题
2012-04-17 10:05 1920问题: 服务端Mina 前台接收Flex 参照的 ... -
ActionScript垃圾回收
2012-04-12 15:04 1455在《给AS程序员的一点建议一文 》中我提到了释放资源的重 ... -
updateAfterEvent的作用
2012-04-10 17:26 1291flash中一共有三个类具 ... -
深入理解flash重绘
2012-04-10 17:21 1228Flash Player 会以SWF内 ... -
[AS3]registerClassAlias的用法
2012-03-20 10:35 1132registerClassAlias在利用AMF3进行序列话网 ... -
navigateToURL
2012-03-09 15:51 1216navigateToURL整理总结一些关于navigate ... -
flash中cacheAsBitmap的使用
2012-03-09 11:59 872缓存显示对象 如果 Flash 中的设计尺寸增大,无论创建 ... -
Debug和Release之本质区别
2012-02-27 11:41 1231关于Debug和Release之本质区别 使用条件编译来完成区 ... -
AS3中super的用法[转自A闪]
2012-02-13 10:19 1292super它到底是什么?这是我第一个问题,在帮助中石这样说明的 ... -
AS3.0的Dictionary类
2012-02-10 11:00 850AS3中的Dictionary类(flash. ... -
AS3中public internal private protected的区别
2012-02-10 10:43 2583protected Java與AS3中的 ... -
面试题目
2011-08-17 16:31 9081.as2与as3.的最主要区别 ... -
AS3事件类型
2011-05-18 09:54 1544Event事件类型: ACTIVATE 激活事件 ... -
关于强制类型转换
2011-05-09 09:59 798每一种编程语言都提供强制类型转换,允许你将某一种数据类型转换成 ... -
DisplayObjectContainer to MovieClip
2011-05-09 09:38 829package gameTool { import fl ...
相关推荐
在AS3中,事件流主要分为三个阶段:捕获阶段(CAPTURING PHASE)、目标阶段(AT TARGET PHASE)和冒泡阶段(BUBBLING PHASE)。当一个事件被触发时,它首先经历捕获阶段,然后到达目标对象阶段,最后在目标对象的父级之间...
首先,AS3中的多点触摸支持依赖于Adobe AIR(Adobe Integrated Runtime),这是一个可以让开发者使用Flash技术构建桌面和移动应用的平台。在移动端,AIR提供了对多点触摸事件的原生支持,如`TouchEvent`类,它包含了...
event.currentTarget identifies the current target for the event, as the event traverses the DOM. It always refers to the element the event handler has been attached to as opposed to event.target which...
在AS3中,我们可以使用`URLLoader`类加载XML文件,然后通过`Event.COMPLETE`事件监听加载完成。以下是一个简单的示例: ```actionscript var urlLoader:URLLoader = new URLLoader(); var xmlRequest:URLRequest = ...
AS3中的事件模型允许对象之间通信,事件触发后会沿着事件流传递。`target`属性表示触发事件的对象,而`currentTarget`属性表示当前正在处理事件的对象。 以上知识点涵盖了ActionScript 3.0在MVC模式、数据库交互、...
通过上述示例,我们可以清楚地看到Flex中事件机制的基本原理及其在实际应用中的作用。理解`target`、`currentTarget`以及`useCapture`的概念对于开发高效、健壮的Flex应用程序至关重要。此外,合理利用事件传播的...
在JavaScript的事件处理机制中,`currentTarget` 是一个非常重要的概念,尤其在事件委托(Event Delegation)和事件冒泡(Event Bubbling)的过程中扮演着关键角色。本文将从多个角度对 `currentTarget` 进行深入...
在AS3中,我们可以利用XML文件作为数据源,动态地构建和更新网站的交互式菜单。这样做的优点在于,非编程背景的人员也能通过编辑XML文件来调整菜单内容,而无需接触代码。 首先,我们需要创建一个XML文件,如`...
在`drop`事件中,通过`event.target`和`event.currentTarget.dropTarget`来确定拖动元素是否已放置在正确的目标上,从而执行相应的反馈或评分逻辑。 在实际开发这些交互式练习时,AS3.0还涉及到了其他一些关键概念...
事件对象通过`type`属性标识事件类型,`target`属性指明事件发生的对象,而`currentTarget`属性则表示当前处理事件的组件。 4. 自定义事件 Flex允许开发人员自定义事件,以满足特定需求。创建自定义事件通常需要...
firefox 的 event.currentTarget 和 ie 的 document.activeElement 这两个完全含义不一致的对象却被捆绑在一起做成了浏览器兼容代码。 大家在google搜索的时候 都会发现 document.activeElement || event....
currentTarget和target的区别是什么? currentTarget指的是触发事件的实际DOM元素,而target则指向最初触发事件的对象。在事件冒泡过程中,currentTarget会改变,而target始终不变。 ### 13. 解释Flex中动画效果...
4. **更新对象位置**:在`mouseMoveHandler`函数内,我们可以通过`event.target`或`event.currentTarget`获取到触发事件的对象,并更新其坐标以匹配鼠标的位置。例如,如果对象名为`my_mc`: ```actionscript my_mc...
本文主要探讨的是在拖拽和拖放操作中事件对象的应用,特别是其属性和方法,这对于实现交互式的网页功能至关重要。 首先,我们要了解`Button`属性。这个属性是Integer类型的,既可以读也可以写,特别是在处理鼠标...
9. **事件目标(target)与当前目标(currentTarget)**:在事件处理过程中,`target` 属性表示最初触发事件的对象,而 `currentTarget` 表示当前正在处理该事件的对象。 10. **动画效果**:Flex提供了多种动画效果支持...
在 ActionScript 3 中,target 属性有时候是空的,建议用 currentTarget。如果数据类型能够使用 new 关键字创建,那么它一定是引用型数据变量。ActionScript 3.0 引入了三种特殊类型的无类型说明符:*,void 和 null...
3. **事件处理函数**:在事件处理函数中,设置目标组件,并调用效果对象的`play()`方法来播放动画。 ```as private function onClick(event:Event):void { be.target = event.currentTarget; be.play(); } `...
节点:" + event.target.id +" 当前节点:"+event.currentTarget.id);}$("body").on("click", "div", function(event) {console.log("div 被点击");event.stopPropagation();});$("body").on("click", "span", ...
通过上述分析,我们可以看出在微信小程序开发中,同一页面取值需要依赖于js文件中的数据和wxml文件中的绑定机制,同时还需要理解数据绑定和事件绑定的具体使用方法。需要注意的是,上述提到的数据传递和取值方法只...
function Event(a,b,c){this.type=a,this.target=null,this.currentTarget=null,this.eventPhase=0,this.bubbles=!!b,this.cancelable=!!c,this.timeStamp=(new Date).getTime(),this.defaultPrevented=!1,this....