Ответ 1
Проблема, с которой вы сталкиваетесь, заключается в том, что ActionScript не поддерживает закрытие.
Другими словами, переменная i
не копируется в ее собственный контекст для каждой функции. Все функции относятся к тому же экземпляру i
.
Дополнительная информация здесь: http://flex.sys-con.com/node/309329
Для этого вам понадобится функция, которая генерирует функцию:
public function makeFunction(i:int):Function {
return function(event:MouseEvent):void { trace(i); }
}
Теперь вы создаете новые экземпляры функции со своим контекстом:
button.addEventListener(MouseEvent.CLICK, makeFunction(i));