我正在尝试创建一个显示您按下的按钮名称的系统。 按钮名称被放入一个数组中,但它只识别输入到数组中的最后一项。 非常感谢帮助。
var items:Array = [a, b, c]; //The name of each button
for each(var index in items)
{
index.addEventListener(MouseEvent.CLICK, mouseClickHandler);
}
function mouseClickHandler(event:MouseEvent):void
{
trace(index.name); //Should display the name of any of the buttons clicked.
}
答案 0 :(得分:3)
您应该追踪currentTarget
名称:
var items:Array = [a, b, c]; //The name of each button
for each(var index in items) {
index.addEventListener(MouseEvent.CLICK, mouseClickHandler);
}
function mouseClickHandler(event:MouseEvent):void {
trace(event.currentTarget.name); //Should display the name of any of the buttons clicked.
}
答案 1 :(得分:0)
此处只创建了一个index
变量 - 显然,mouseClickHandler
函数只能使用其当前值。如果需要引用特定值(在每个循环步骤中给出),则需要以这种或那种方式对它们进行本地化:
function generateClickHandler(index:someType) {
return function(event:MouseEvent):void { trace(index.name); }
}
...
for each(var index in items)
{
index.addEventListener(MouseEvent.CLICK, generateClickHandler(index);
}
我建议您同时查看thread。