addEventListener в цикле
Привет всем, у меня вопрос насчет использования addEventListener в цикле
Вот мой пример: Код:
for(i=0; i< 10; i++) Пробовал и так: Код:
for(i=0; i< myXML.menu_item.length(); i++) Код:
[object page_5] Код:
[object page_1] |
Так как по event-у выводится значение, содержащееся в ячейке i ( а это одна ячейка в памяти, с одним адресом) то понятное дело что после прохождения цикла выводится 10, т.к. в этой ячейке содержится 10, и все трейсы просто выводят это значение.
|
Ну вы же трейсите конечное значение итератора i после выполнения цикла, всё верно.
|
Цитата:
Помогите пожалуйста |
Попробуй так написать.
Код:
pageArray[i].addEventListener(MouseEvent.MOUSE_OVER, function onMouseOver(event:Event) {trace(event.target)}); |
Цитата:
Запарился с поиском, в AS2 все работало в таких случаях :( |
Нет ни какой ошибки.
Добавьте после Код:
pageArray[i].page.over.addEventListener(MouseEvent.MOUSE_OVER, printscreen); Код:
pageArray[i].page.x = i Код:
trace(e.currentTarget.parent.x); А 5 в page_5 говорит о том, что у объекта 5 уровень вложенности и имя его в библиотеки page. Если бы у него был персональный класс, например Iam, то в трейсе было просто Iam без цифр. |
Как вариант - повесить на все объекты одну функцию, а уже в этой функции по event.target определять какое действие вызвать. Если же нужен именно порядковый номер, то т.к. все объекты хранятся в массиве, можно используя этот массив и event.target узнать порядковый номер этого объекта.
|
Я б сделал отдельный класс, который базировался от Мувиклипа, добавил бы к кему поле, и уже при создании цикла, присваивал полю значение.
Либо можно по имени, дать имя name1, name2, name3.. и уже потом вырезать последний индекс. |
Часовой пояс GMT +4, время: 11:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.