Actionscript 3 Actionscript 3.0确定事件侦听器发送方?
是否可以根据事件侦听器确定哪个对象调用函数?例如,我在stage上有两个按钮,当它们被单击时调用相同的函数。我想用这个函数来确定哪个按钮是发送者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
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);
}