AS3 Добавить прослушиватель событий для каждого - PullRequest
0 голосов
/ 02 января 2011

Я хотел бы добавить обработчик событий ко всем элементам, которые я создаю для каждого цикла. Но, по-видимому, eventlistener работает только с последним созданным элементом.

Как добавить прослушиватель событий для каждого элемента, созданного в каждом цикле?

Это мой код:

        for each(var showCase:ShowCaseItem in _bllShowCase.arrShowCase)
        {
            var listItem:ListItemShowCase = new ListItemShowCase(showCase);
            listItem.y = yPos;
            listItem.addEventListener("ITEMDELETED", refreshShowCaseItems);
            this.addChild(listItem);

            yPos += 20;

        }

Надеюсь, вы понимаете мой вопрос.

Спасибо, Винсент

1 Ответ

0 голосов
/ 02 января 2011

Функционально в этом коде нет ничего плохого.Он должен работать.

Возможно, проблема в другом месте.

Список отображения будет содержать ссылку на каждый объект, поэтому GC не должен очищать ни одного из слушателей, но вы можете попробовать кэшировать каждый объект в массив.Таким образом, вы уверены, что есть ссылка на каждый объект за пределами этого блока кода.

private var _list:Array = new Array();

for each( var item:Object in list )
{
    _list.push( listItem );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...