我真的不明白这两者之间的区别
event.target and
event.CurrentTarget and explanation.
有人可以通过一个简单的例子向我解释这个吗?
答案 0 :(得分:4)
可以使用链接如下。
您可以通过访问以下链接
来查看用户界面的差异理论上,
实际上恰恰相反。
currentTarget是您设置侦听器的内容。 target是导致事件的原因(什么调用dispatchEvent)。 currentWarget和target对于非冒泡事件都是相同的。对于冒泡事件,当在父级上为子级调度的事件调用addEventListener时,它们会有所不同。然后,currentTarget将成为父级,目标将是子级(实际调度该事件的子级)。
currentTarget通常是您要在事件处理程序中指定的内容,因为这是您添加侦听器的对象。如果您需要知道实际发生事件的对象的源子,那么您只需要引用目标。
答案 1 :(得分:4)
假设您创建了一个TextInput
对象。
import fl.controls.TextInput;
import flash.events.MouseEvent;
var t:TextInput;
function init():void {
t = new TextInput();
t.x = 100;
t.y = 100;
t.width=100;
t.height=30;
t.addEventListener(MouseEvent.CLICK, fresult);
this.addChild(t);
}
function fresult(e:Event):void {
trace(e.target);
trace(e.currentTarget);
}
init();
单击TextInput会显示以下内容:
[object TextField]
[object TextInput]
这意味着:
event.target
是事件发起的对象。即在这种情况下,单击了TextField,因此事件源自TextField
。
event.currentTarget
是调用侦听器的对象。在这种情况下,TextInput
调用了侦听器,因此currentTarget
为TextInput