|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2010
Адрес: Polska
Сообщений: 5
|
массив MovieClip из библиотеки, EventListener обрабатывает только последний мувик
Приветствую всех!
Бьюсь над проблемой, но уже просто не знаю, что можно сделать. А дело в следующем: Беру мувик из библиотеки, создаю его экземпляр в цикле, добавляю его в массив и на екран следующим образом: var classBtArr:Array = new Array(10); for (var k:int = 0; k<10; k++){ var myClassBt:MovieClip = new setClass(); myClassBt.y = 30*k; myClassBt.name = "setClassBt"+k; classBtArr.push(myClassBt); myClassBt.addEventListener(MouseEvent.CLICK,onSetClass); addChild(myClassBt); // можно написать addChild(classBtArr[k]); - результат тот же function onSetClass(e:Event): void{ trace(myClassBt.name); // выводит только: setClassBt9 if (myClassBt.currentFrame!=11){ myClassBt.gotoAndStop(11); // тут на 11-й кадр переходит только последний добавленный мувик, хотя нажимаю на другие }else{ myClassBt.gotoAndStop(1+Math.floor(myClassBt.mouseX/20)); } } } Помогите, пожалуйста. Очень нужно, но не могу с этим разобраться никак, и в интернете ничего подходящего не нахожу. |
|
|||||
Регистрация: Jan 2010
Адрес: Polska
Сообщений: 5
|
не помогло
Да, для команды
trace(e.target.name); даёт результаты типа: instance136 instance162 instance214 instance32 ... Но для trace(e.target.y); всё время выводит 0. Хотя мувики имеют разные координаты, выстроены в столбик. И на 11й кадр они тоже не переходят. Такой вариант не спасает ситуацию. |
|
|||||
strange mood
|
Переход на 11 кадр нужно тоже писать для e.target
По поводу y=0 - что у вас внутри setClass? Туда случайно не напихано еще чего-нибудь? Попробуйте ему прописать mouseChildren = false
__________________
тонкий тролль, осеянный благодатью |
|
|||||
Регистрация: Jan 2010
Адрес: Polska
Сообщений: 5
|
:) уже работает!
А оказывается, нужно было написать
Вот и все дела. Код работает в следующем виде: var classBtArr:Array = []; for (var k:int = 0; k<10; k++){ var myClassBt:MovieClip = new setClass(); myClassBt.x = 0; myClassBt.y = 30*k; myClassBt.instanceName = "setClassBt"+k; myClassBt.addEventListener(MouseEvent.CLICK,onSetClass); classBtArr[k]=myClassBt; addChild(classBtArr[k]); function onSetClass(e:Event): void{ trace(e.currentTarget.y); if (e.currentTarget.currentFrame!=11){ e.currentTarget.gotoAndStop(11); }else{ e.currentTarget.gotoAndStop(1+Math.floor(e.currentTarget.mouseX/20)); trace(e.currentTarget.currentFrame-1); } } myClassBt.removeMovieClip; } Поэтому, кого интересует, как бороться с добавленными из библиотеки кнопками/мувиками, пользуйтесь на здоровье этим кодом Добавлено через 12 минут GAIKER, спасибо за сотрудничество |
Часовой пояс GMT +4, время: 07:09. |
|
« Предыдущая тема | Следующая тема » |
Теги |
addChild , addeventlistener , array , movieclip , библиотека |
|
|