|
|
|||||
Регистрация: Jul 2008
Сообщений: 6
|
addEventListener в цикле
Привет всем, у меня вопрос насчет использования addEventListener в цикле
Вот мой пример: for(i=0; i< 10; i++) { pageArray[i].addEventListener(MouseEvent.MOUSE_OVER, function({trace(i)}); } Пробовал и так: for(i=0; i< myXML.menu_item.length(); i++) { pageArray.push(i); pageArray[i]= new page_item(); rootpages.addChild(pageArray[i]); rootpages.setChildIndex(pageArray[i],0); pageArray[i].page.tab_txt.text = ("menu "+i); pageArray[i].x=pagex-i*40; pageArray[i].y=pagey+i*11; pageArray[i].scaleX = pageArray[i].scaleX-0.025*i; pageArray[i].scaleY = pageArray[i].scaleY-0.025*i; tweenArray[i] = new Tween(pageArray[i],"x",Strong.easeOut,pageArray[i].x+400,pageArray[i].x,2,true); img_request = new URLRequest("img"+i+".jpg"); img_loader = new Loader(); img_loader.load(img_request); pageArray[i].page.imageloader.addChild(img_loader); //tw.addEventListener(TweenEvent.MOTION_FINISH, tweenfinish); pageArray[i].page.over.addEventListener(MouseEvent.MOUSE_OVER, printscreen); } function printscreen(e:MouseEvent):void { trace(e.currentTarget.parent); } [object page_5] [object page_5] [object page_5] [object page_5] [object page_5] [object page_5] Помогите в чем же ошибка, ато никак не могу разобратся Последний раз редактировалось Le1; 29.10.2008 в 18:06. |
|
|||||
Так как по event-у выводится значение, содержащееся в ячейке i ( а это одна ячейка в памяти, с одним адресом) то понятное дело что после прохождения цикла выводится 10, т.к. в этой ячейке содержится 10, и все трейсы просто выводят это значение.
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Ну вы же трейсите конечное значение итератора i после выполнения цикла, всё верно.
|
|
|||||
Регистрация: Jul 2008
Сообщений: 6
|
Цитата:
Помогите пожалуйста |
|
|||||
Регистрация: Nov 2005
Сообщений: 1,058
|
Попробуй так написать.
|
|
|||||
Регистрация: Jul 2008
Сообщений: 6
|
Цитата:
Запарился с поиском, в AS2 все работало в таких случаях |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Нет ни какой ошибки.
Добавьте после строку и трейс смените на Будут выводится разные числа. А 5 в page_5 говорит о том, что у объекта 5 уровень вложенности и имя его в библиотеки page. Если бы у него был персональный класс, например Iam, то в трейсе было просто Iam без цифр. |
|
|||||
Как вариант - повесить на все объекты одну функцию, а уже в этой функции по event.target определять какое действие вызвать. Если же нужен именно порядковый номер, то т.к. все объекты хранятся в массиве, можно используя этот массив и event.target узнать порядковый номер этого объекта.
|
|
|||||
Я б сделал отдельный класс, который базировался от Мувиклипа, добавил бы к кему поле, и уже при создании цикла, присваивал полю значение.
Либо можно по имени, дать имя name1, name2, name3.. и уже потом вырезать последний индекс.
__________________
Работю в DigitalHouse |
Часовой пояс GMT +4, время: 23:20. |
|
« Предыдущая тема | Следующая тема » |
Теги |
addeventlistener , цикл |
|
|