`

flex target currentTarget

    博客分类:
  • flex
阅读更多
About the target and currentTarget properties
Every Event object has a target and a currentTarget property that help you to keep track of where it is in the process of propagation. The target property refers to the dispatcher of the event. The currentTarget property refers to the current node that is being examined for event listeners. When you handle a mouse event such asMouseEvent.CLICKby writing a listener on some component, theevent.target
property does not necessarily refer to that component; it is often a subcomponent, such as the Button control’s UITextField, that defines the label.When Flash Player or Adobe® AIR™ dispatches an event, it dispatches the event from the frontmost object under the mouse. Because children are in front of parents, that means the player or AIR might dispatch the event from an internal subcomponent, such as the UITextField of a Button.Theevent.targetproperty is set to the object that dispatched the event (in this case, UITextField), not the object that is being listened to (in most cases, you have a Button control listen for aclick
event).MouseEvent events bubble up the parent chain, and can be handled on any ancestor. As the event bubbles, the value of theevent.target
property stays the same (UITextField), but the value of theevent.currentTargetproperty is set at each level to be the ancestor that is handling the event. Eventually, the currentTarget will be Button, at which time the Button control’s event listener will handle the event. For this reason, you should use the event.currentTarget property rather than the event.target property; for example: <mx:Button label="OK" click="trace(event.currentTarget.label)"/> In this case, in the Button event’s click event listener, the event.currentTarget property always refers to the Button, while event.target might be either the Button or its UITextField, depending on where on the Button control the user clicked.
(每个事件对象都有target和currentTarget属性,帮助你追踪传播过程。target属性指的是事件的分配者(事件的根源)。currentTarget属性指的是被事件监听器检测的当前节点。
当你处理一个鼠标事件,例如注册在某些组件上的MouseEvent.CLICK事件,event.target的属性没必要引用这个组件,而是这个组件的子组件,例如用来定义标签(label)的Button的UITextField控件。
当Flash Player或者Adobe AIR 派发一个事件,它由鼠标下(可能是click、mouseOver等)的最前端对象派发。因为子类在父类的前面,这就意味着Flash Player或者AIR可能从内部子部件,例如Button的UITextField来派发事件。
event.target属性被设成派发事件的对象(在这里是UITextField),而不是被监听的对象(在多数情况,你会有一个监听click事件的Button空间)。
MouseEvent 事件往上冒泡到父链,可以被任何父类处理。随着事件冒泡,event.target的属性值不变(UITextFileld),但是event.currentTarget的属性被设成不同层级处理事件的父类。最后,currentTarget变成Button,这时Button控件的事件监听器将处理事件。因为这个原因,你应该用event.currentTarget属性而不是event.target属性,举例:
<mx:Button label="OK" click="trace(event.currentTarget.label)"/>
在这种情况,在Button事件监听器里,event.currentTarget属性总是指向Button,然而event.target可能或者是Button或者是它的UITextFiled,这取决于用户在Button控件上点击的位置。)
分享到:
评论

相关推荐

    FLEX面试题

    9. **事件目标(target)与当前目标(currentTarget)**:在事件处理过程中,`target` 属性表示最初触发事件的对象,而 `currentTarget` 表示当前正在处理该事件的对象。 10. **动画效果**:Flex提供了多种动画效果支持...

    深入浅出讲解flex中的事件机制

    本文将详细探讨Flex中的事件机制,特别是`target`与`currentTarget`的区别,以及`useCapture`的作用。 #### 二、事件机制基础 在Flex中,事件是应用程序响应用户输入或系统变化的主要方式。事件处理通常涉及三个...

    Flex使用问题汇总

    &lt;mx:TextArea x="0" y="0" width="480" height="280" id="Elem_OutText" editable="true" change="{event.target.text = bakElem_OutText}"/&gt; ``` 4. **HTTPService组件读取XML的乱码问题**: 当HTTPService获取...

    Flex试题 .txt

    currentTarget指的是触发事件的实际DOM元素,而target则指向最初触发事件的对象。在事件冒泡过程中,currentTarget会改变,而target始终不变。 ### 13. 解释Flex中动画效果的使用原理。 Flex提供了强大的动画和...

    flex datagrid doubleclick 实例

    首先,我们需要获取到`event.target`,即被双击的DataGrid项,然后通过`event.currentTarget.selectedItem`或`event.rowIndex`获取到选定的数据项。代码示例如下: ```actionscript private function ...

    《我的flex我精通》第3章

    如type属性表示事件类型,target属性表示事件的目标对象,currentTarget属性则指向事件监听器所在的对象。stopPropagation()和preventDefault()方法分别用于阻止事件的进一步传播和默认行为的执行。 五、事件冒泡与...

    flex动画效果与变幻.pdf

    be.target = event.currentTarget; be.play(); } ``` 这种方式的优点是可以更灵活地控制动画的播放条件和参数,适用于需要定制化动画效果的场景。 ##### 3.2 使用触发器播放动画 这种方式无需编写...

    flex事件机制分析

    事件对象通过`type`属性标识事件类型,`target`属性指明事件发生的对象,而`currentTarget`属性则表示当前处理事件的组件。 4. 自定义事件 Flex允许开发人员自定义事件,以满足特定需求。创建自定义事件通常需要...

    Flex晋级培训

    - **currentTarget**:当前正在处理事件的对象。 - **事件处理**: - **注册事件**:通过`addEventListener`方法将事件处理器绑定到特定对象上。 - **分派事件**:通过`dispatchEvent`方法手动触发事件。 - **...

    flex 事件学习

    每个事件都包含一些关键属性,如`type`(事件类型)、`target`(事件目标)、`currentTarget`(当前处理事件的对象)以及` bubbles`(是否冒泡)等。这些属性在事件处理函数中可以用来获取更多信息。 5. **...

    Flex 拖拽图片代码

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

    Flex Event总结

    2. **Target与CurrentTarget的区别**:Target是指实际触发事件的对象,而CurrentTarget是指当前正在处理事件的对象,通常是事件监听器所在的对象。 3. **事件监听器的添加与移除**:在MXML中定义的事件监听器不能...

    微信小程序左侧导航.rar

    const target = e.currentTarget.dataset.target; // 获取点击的目标 switch (target) { case 'open': this.setData({ drawerOpen: true }); break; case 'close': this.setData({ drawerOpen: false }); ...

    AS3移动端多点触摸带例子

    例如,只在必要的时候添加和移除事件监听器,避免不必要的计算,以及使用`event.target`代替`event.currentTarget`来减少查找当前触摸点所在对象的时间。 总的来说,AS3通过`TouchEvent`类提供了对移动端多点触摸的...

    一些方案的实现方法js笔记

    在事件处理函数中,`event.target`表示触发事件的元素,而`event.currentTarget`则表示当前事件处理程序所在的元素。要找到父元素,可以使用`parentElement`或`parentNode`。 6. **JS获取节点方式**: 包括`...

    饿了么(25问).pdf

    可以使用 `event.target` 或 `event.currentTarget` 来获取触发事件的元素,然后判断该元素是否具有 `button` 标签。 #### 22. 页面上生成一万个 button,并且绑定事件,如何做(JS原生操作DOM) 可以使用循环来...

Global site tag (gtag.js) - Google Analytics