During every event dispatch, the Event object passed to every event listener defines a
currentTarget variable that provides a reference to the object with which the event
listener registered. The following general event-listener code demonstrates; it outputs
the String value of the object with which someListener( ) registered:
public function someListener (e:SomeEvent):void {
// Access the object with which this event listener registered
trace(e.currentTarget);
}
For events targeted at nondisplay objects, the value of the Event class’s instance variable
currentTarget is always equal to target (because listeners always register with
the event target). For example, returning once again to the FileLoader class from
Example 12-1, if we check the value of both e.currentTarget and e.target within
completeListener( ), we find that those two variables refer to the same object:
package {
import flash.display.*;
import flash.net.*;
import flash.events.*;
public class FileLoader extends Sprite {
public function FileLoader ( ) {
var urlLoader:URLLoader = new URLLoader( );
urlLoader.addEventListener(Event.COMPLETE, completeListener);
urlLoader.load(new URLRequest("someFile.txt"));
}
private function completeListener (e:Event):void {
trace(e.currentTarget == e.target); // Displays: true
}
}
}
However, as we’ll learn in Chapter 21, for events targeted at display objects in a display
hierarchy, listeners can register both with the event target and with the event
target’s display ancestors. For event listeners registered with an event target’s display
ancestor, currentTarget refers to that display ancestor, while target refers to the
event target object.
For example, suppose a Sprite object that contains a TextField object registers a
MouseEvent.CLICK event listener, clickListener( ). When the user clicks the text field, a
MouseEvent.CLICK event is dispatched, and clickListener( ) is triggered. Within
clickListener( ), currentTarget refers to the Sprite object, while target refers to the
TextField object.
stone :
真正的事件dispatch者是event.target,监听事件(addEventListner)的对象是event.currentTarget,Flex skd中有言曰:
"Event objects also have target properties that reference the actual object which dispatched the event. In some cases, the target may not be the object for which you have registered a listener. This can occur when the object for which you have registered a listener contains a child component that also dispatches the same event (and
the event bubbles). If you want to ensure that you are getting a reference to the object for which the listener is registered to listen for the event, use the currentTarget property"
例:如为容器mc1创建了一个同类型(或者说拥有相同事件)的子容器mc2,再为mc1注册click事件监听器,当单击子容器mc2时,则event.target指事件dispatch者mc2,而event.currentTarget指当前的事件处理者mc1,因此在使用时如果是要获取被注册事件监听器的对象(一般都是如此)则用event.currentTarget
,currentTarget属性应具备两条件,一是它注册了侦听器,二是正在处理事件。
http://www.cnblogs.com/sharplife/archive/2007/09/15/893873.html
said
分享到:
相关推荐
9. **事件目标(target)与当前目标(currentTarget)**:在事件处理过程中,`target` 属性表示最初触发事件的对象,而 `currentTarget` 表示当前正在处理该事件的对象。 10. **动画效果**:Flex提供了多种动画效果支持...
本文将详细探讨Flex中的事件机制,特别是`target`与`currentTarget`的区别,以及`useCapture`的作用。 #### 二、事件机制基础 在Flex中,事件是应用程序响应用户输入或系统变化的主要方式。事件处理通常涉及三个...
<mx:TextArea x="0" y="0" width="480" height="280" id="Elem_OutText" editable="true" change="{event.target.text = bakElem_OutText}"/> ``` 4. **HTTPService组件读取XML的乱码问题**: 当HTTPService获取...
currentTarget指的是触发事件的实际DOM元素,而target则指向最初触发事件的对象。在事件冒泡过程中,currentTarget会改变,而target始终不变。 ### 13. 解释Flex中动画效果的使用原理。 Flex提供了强大的动画和...
首先,我们需要获取到`event.target`,即被双击的DataGrid项,然后通过`event.currentTarget.selectedItem`或`event.rowIndex`获取到选定的数据项。代码示例如下: ```actionscript private function ...
如type属性表示事件类型,target属性表示事件的目标对象,currentTarget属性则指向事件监听器所在的对象。stopPropagation()和preventDefault()方法分别用于阻止事件的进一步传播和默认行为的执行。 五、事件冒泡与...
be.target = event.currentTarget; be.play(); } ``` 这种方式的优点是可以更灵活地控制动画的播放条件和参数,适用于需要定制化动画效果的场景。 ##### 3.2 使用触发器播放动画 这种方式无需编写...
事件对象通过`type`属性标识事件类型,`target`属性指明事件发生的对象,而`currentTarget`属性则表示当前处理事件的组件。 4. 自定义事件 Flex允许开发人员自定义事件,以满足特定需求。创建自定义事件通常需要...
- **currentTarget**:当前正在处理事件的对象。 - **事件处理**: - **注册事件**:通过`addEventListener`方法将事件处理器绑定到特定对象上。 - **分派事件**:通过`dispatchEvent`方法手动触发事件。 - **...
每个事件都包含一些关键属性,如`type`(事件类型)、`target`(事件目标)、`currentTarget`(当前处理事件的对象)以及` bubbles`(是否冒泡)等。这些属性在事件处理函数中可以用来获取更多信息。 5. **...
var dragTarget:Image = Image(evt.currentTarget); var ds:DragSource = new DragSource(); var imgProxy:Image = new Image(); imgProxy.source = img.source; imgProxy.width = 32; imgProxy.height = 32; ...
2. **Target与CurrentTarget的区别**:Target是指实际触发事件的对象,而CurrentTarget是指当前正在处理事件的对象,通常是事件监听器所在的对象。 3. **事件监听器的添加与移除**:在MXML中定义的事件监听器不能...
const target = e.currentTarget.dataset.target; // 获取点击的目标 switch (target) { case 'open': this.setData({ drawerOpen: true }); break; case 'close': this.setData({ drawerOpen: false }); ...
例如,只在必要的时候添加和移除事件监听器,避免不必要的计算,以及使用`event.target`代替`event.currentTarget`来减少查找当前触摸点所在对象的时间。 总的来说,AS3通过`TouchEvent`类提供了对移动端多点触摸的...
在事件处理函数中,`event.target`表示触发事件的元素,而`event.currentTarget`则表示当前事件处理程序所在的元素。要找到父元素,可以使用`parentElement`或`parentNode`。 6. **JS获取节点方式**: 包括`...
可以使用 `event.target` 或 `event.currentTarget` 来获取触发事件的元素,然后判断该元素是否具有 `button` 标签。 #### 22. 页面上生成一万个 button,并且绑定事件,如何做(JS原生操作DOM) 可以使用循环来...