|
|
|||||
Регистрация: Jul 2009
Сообщений: 93
|
|
|
|||||
Регистрация: Aug 2008
Адрес: moscow
Сообщений: 137
|
а как быть в такой ситуации. достою первый клип, задаю ему твин и энтерфрейм. как только клип по х превысит свою ширину, за ним достается следующий и т.д. а по MOTION_FINISH я пытаюсь этот клип удалить. но почему-то удаляется только первый, последующие на это не реагируют. почему клипы не реагируют, они все же привязаны к этому твину, может надо каждому свой твин задать?
var img:Array = []; function img_mod(){ var c:Class = getDefinitionByName(mov_name[i]) as Class; var mov:MovieClip = new c() as MovieClip; this.addChild(mov); img[i] = mov; img[i].x = -50; img[i].y = 115; var myTween:Tween = new Tween(img[i], "x", Elastic.easeOut, -50, 500,20, true); myTween.addEventListener(TweenEvent.MOTION_FINISH, motion); img[i].addEventListener(Event.ENTER_FRAME, enter_frame); if (i == total-1){ i = 0; } } function motion (event:TweenEvent):void { removeChild(img[i]); } function enter_frame (event:Event):void { if (img[i].x > img[i].width+5){ img[i].removeEventListener(Event.ENTER_FRAME, motion); i++; img_mod(); } } |
|
|||||
[+1.3 21.08.09]
|
получилось вот так . По другому вообще не работает пишет - TypeError: Error #1009: Cannot access a property or method of a null object reference.
at AS::Control() var BTNlistener:*; for(i=1;i<bigmap.numChildren;i++) { BTNlistener = bigmap.getChildAt(i); BTNlistener.addEventListener(MouseEvent.ROLL_OVER, BTNrollOverHandler); BTNlistener.addEventListener(MouseEvent.ROLL_OUT, BTNrollOutHandler) } Добавлено через 13 минут а теперь вопрос ) как заставить в зависимости от того какая кнопка была нажата, определенные клипы менять свой тайм лайн ? тоесть : у нас есть кнопка BTN34 и есть клип CLIP34 , если на кнопку навели мышку то клипчик выполняет gotoAndPlay(10) . мышку убрали gotoandStop(1) . Стандартная фичка Добавлено через 10 часов 7 минут решил эту штуку вот так protected function BTNrollOutHandler(event:MouseEvent):void { //bigmap.shape_34.gotoAndPlay("stop"); stopShape(event.currentTarget); } function stopShape(BTNClip:*):void { var index = bigmap.BTNContainer.getChildIndex(BTNClip); bigmap.ShapeContainer["shape"+index].gotoAndPlay("stop"); } но пришлось создать 2 контэйнера ... и в них хранить только кнопки и клипы, строго хронологически их добавлять и называть, иначе ничего не работает ... вот бы знать как имя клипа кнопки ( INSTANCE NAME ) считывать когда он событие передает ! Последний раз редактировалось igrayka; 22.08.2009 в 02:46. |
|
|||||
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
Цитата:
А хотелось бы узнать тогда, как создать переменную с именем ["s"+i] и типом sprite. А код из цитаты я так и не смог заставить работать %) Последний раз редактировалось cauchy; 23.08.2009 в 19:43. |
|
|||||
стервочка (я мужик)
|
cauchy, Вы что пытались этим кодом сделать? этот код добавляет мувик из библиотеки ( "s1", где i=1 )
|
|
|||||
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
BlooDHounD, если честно я сам запутался что я пытался сделать С getDefinitionByName я разобрался, это не то, что мне было нужно.
Лучше я здесь задам корректный вопрос, из за которого собственно я и забрёл в эту тему: Мне необходимо программно создать, например, 100 объектов (пусть они являются экземплярами покласса Sprite), и затем их разместить на экране, добавить к ним слушателей и ещё как-либо ими управлять. Для этого необходимо использовать массив, в который и добавляются все эти объекты? Причём имён эти объекты иметь не будут, а получить доступ к ним можно только как к элементу массива по индексу? Я правильно подхожу к решению данной задачи? Или есть способ лучше? Надеюсь ничего страшного, что я решил это в данной теме спросить |
|
|||||
Регистрация: Jul 2009
Сообщений: 93
|
Будет быстрее если спрайты накидать в контейнер, а потом брать их от туда с помощью getChildAt().
|
|
|||||
стервочка (я мужик)
|
правильно подходите. закидывайте в массив и обращайтесь по индексу.
|
|
|||||
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
Спасибо за ответы, решил пока остановиться на массиве.
|
Часовой пояс GMT +4, время: 19:20. |
|
« Предыдущая тема | Следующая тема » |
|
|