Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Actionscript 3.0确定事件侦听器发送方?_Actionscript 3_Event Handling_Sender - Fatal编程技术网

Actionscript 3 Actionscript 3.0确定事件侦听器发送方?

Actionscript 3 Actionscript 3.0确定事件侦听器发送方?,actionscript-3,event-handling,sender,Actionscript 3,Event Handling,Sender,是否可以根据事件侦听器确定哪个对象调用函数?例如,我在stage上有两个按钮,当它们被单击时调用相同的函数。我想用这个函数来确定哪个按钮是发送者 firstButton.addEventListener(MouseEvent.CLICK, myFunction); secondButton.addEventListener(MouseEvent.CLICK, myFunction); function myFunction(e:MouseEvent):void { var myString

是否可以根据事件侦听器确定哪个对象调用函数?例如,我在stage上有两个按钮,当它们被单击时调用相同的函数。我想用这个函数来确定哪个按钮是发送者

firstButton.addEventListener(MouseEvent.CLICK, myFunction);
secondButton.addEventListener(MouseEvent.CLICK, myFunction);

function myFunction(e:MouseEvent):void
 {
 var myString:String = "The button that called this function was (??)";
 trace(myString);
 }
使用类中的属性

使用类中的属性


在myfunction内部,例如currentTarget应保存对发送事件的按钮的引用。

在myfunction内部,e.currentTarget应该保留对发送事件的按钮的引用。

我只想补充一点:在函数中获得的事件对象中,有两个属性有时会混淆,难以区分:

e、 目标-目标将始终向您返回事件的原始调度程序,因此,如果您单击了按钮,但在侦听父级时,您的目标仍将是按钮

e、 currentTarget-currentTarget返回您从事件或adobes语言中请求的对象“使用事件侦听器主动处理事件对象的对象”

因此,您当前的目标和目标可以产生不同的结果,您需要记住这一点。
p、 s.如果您的事件不冒泡(非可视/非用户交互鼠标事件)那么您的currentTarget和target将是相同的,或者如果您在冒泡事件的情况下询问发送事件的对象。

我只想补充一点:在函数中获得的event对象中,有两个属性有时会混淆,难以区分:

e、 目标-目标将始终向您返回事件的原始调度程序,因此,如果您单击了按钮,但在侦听父级时,您的目标仍将是按钮

e、 currentTarget-currentTarget返回您从事件或adobes语言中请求的对象“使用事件侦听器主动处理事件对象的对象”

因此,您当前的目标和目标可以产生不同的结果,您需要记住这一点。
p、 s.如果您的事件没有冒泡(非视觉/非用户交互鼠标事件),则您的当前目标和目标将是相同的,或者如果您在冒泡事件的情况下询问发送事件的对象。

如果您希望原始发送者
目标
更好,如果事件正在冒泡,则当您捕获它时,currentTarget将是事件所在的任何位置。如果您希望原始发件人
目标
更好,如果事件正在冒泡,则currentTarget将是您捕获它时事件所在的任何位置。
function myFunction(e:MouseEvent):void {
 var myString:String = "The button that called this function was "+e.currentTarget;
 trace(myString);
}