Проблема, с которой вы сталкиваетесь, заключается в том, что 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));