Попробуйте обернуть код обратного вызова в функцию:
newTag.addEventListener(MouseEvent.MOUSE_UP, function(e:MouseEvent):void {
dispatchEvent(new CustomMouseEvent(MouseEvent.MOUSE_UP, [e.currentTarget.name]));
});
Я думаю, что проблема с кодом MXML заключается в том, что вы используете ретранслятор и пытаетесь получить currentItem
после того, как повторение закончено. Попробуйте вместо этого:
<mx:LinkButton click="dispatchEvent(new CustomMouseEvent(MouseEvent.MOUSE_UP, event.currentTarget.getRepeaterItem().tags))" />
Надеюсь, это поможет.
Обновление
Поскольку вы создаете объект newTag
в цикле, вы получите лучшее использование памяти, просто используя именованную функцию в качестве прослушивателя событий.
newTag.addEventListener(MouseEvent.MOUSE_UP, onTagClick);
...
protected function onTagClick(e:MouseEvent):void {
dispatchEvent(new CustomMouseEvent(MouseEvent.MOUSE_UP, [e.currentTarget.name]));
}
Таким образом, вы создаете только одного прослушивателя событий, а не n
прослушивателей, которые делают то же самое.