Actionscript 3 如何在for循环中为Actionscript中的标签/按钮创建唯一的eventlistener?

Actionscript 3 如何在for循环中为Actionscript中的标签/按钮创建唯一的eventlistener?,actionscript-3,apache-flex,flex4,flex4.5,Actionscript 3,Apache Flex,Flex4,Flex4.5,目前,我在Actionscript(针对Flex)中使用了这个工具,在一个BorderContainer(ID字母)中创建了26个标签: 但是当我点击一个字母时,只有字母Z被发送到函数getUsers。因此,当我从for循环创建标签时,只有eventlistener可以为最后创建的标签工作。如何修复此问题?我假设getUsers(lettersArray[indexLetter])是一个错误,因为您无法访问这样的数组元素 var lettersArray:Array = ['A', 'B', '

目前,我在Actionscript(针对Flex)中使用了这个工具,在一个BorderContainer(ID字母)中创建了26个标签:


但是当我点击一个字母时,只有字母Z被发送到函数getUsers。因此,当我从for循环创建标签时,只有eventlistener可以为最后创建的标签工作。如何修复此问题?

我假设
getUsers(lettersArray[indexLetter])
是一个错误,因为您无法访问这样的数组元素

var lettersArray:Array = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];

for each(var letter:String in lettersArray) {
    var labelLetter:Label = new Label();
    labelLetter.text = letter;
    labelLetter.addEventListener(MouseEvent.CLICK, function():void { getUsers(e.currentTarget.text); });

    letters.addElement(labelLetter);
}

最后非常感谢。我在函数中添加了e:MouseEvent。getUsers(lettersArray[indexLetter])总是“Z”。为什么不简单地标记为labelLetter.text=indexLetter;我从原来的问题中复制了这个例子,只是略读了一下以更改相关部分:)现在已修复。
var lettersArray:Array = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];

for each(var letter:String in lettersArray) {
    var labelLetter:Label = new Label();
    labelLetter.text = letter;
    labelLetter.addEventListener(MouseEvent.CLICK, function():void { getUsers(e.currentTarget.text); });

    letters.addElement(labelLetter);
}