![]() |
|
||||||||||
|
|
|
|||||
|
На временной шкале есть различные наборы анимации объекта, помеченные метками frameLabel - a1, a2, a3, a4.... и.т.д.
Объект с каждым разом будет рандомно анимироваться, проигрывая разные отрезки анимаций - например: a1, a4, a9, a2.... Как узнать, что текущий отрезок анимации проигрался, чтобы перейти к другому отрезку?
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Можно в конце каждого отрезка вставить код:
А потом слушать: |
|
|||||
|
Спасибо. Работает. Но есть нюанс.
Вся эта анимация находится в экземпляре, который находится на втором кадре внтури другого мувика. Весь скрипт пишу в корневом таймлайне, оттуда и обращаюсь к мувику. В этом случае события не отлавливаются. Но если переместить мувик на первый кадр - то события ловятся нормально. ВОПРОС 1: Можно ли ловить события от экземляра, который находится не на первом кадре? Как правильнее сделать? ВОПРОС 2: Нашел в доках события FrameLabel, появившиеся в ActionScript 3.0 - они не для моего случая? Только я пока не разобрался как ими пользоваться - в примечании написано: у этого события нет ни «фазы захвата», ни «фазы передачи», поэтому прослушиватели событий должны добавляться непосредственно в объекты FrameLabel.
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
|
var mc=MovieClip(root);
mc.addEventListener(Event.COMPLETE, ...) Последний раз редактировалось Babylon; 01.10.2014 в 03:42. |
|
|||||
|
Babylon, спасибо за ответ, но это не то.
Переформулирую вопрос: как обратиться из кода на первом кадре к мувику, который находится, наример, на 3 ключевом кадре? ZergMaster, если так, то тогда понятно, что имел ввиду Babylon. И мой ответ на свой вопрос тоже в таком случае понятен. Одно единственное, хотелось бы конечно код более централизованным написать, а не раскидывать по кадрам...
__________________
кто не отвечает, того garbage collector забирает |
|
|||||
|
Babylon наверное имеет в виду, что можно диспатчить событие не от имени данного мувика, а от рута, и туда же подписываться. То есть в конце отрезков
и слушать из корневого таймлайна
__________________
while(live()) { hope(); } |
|
|||||
var mc= MovieClip(root); mc.addEventListener(Event.COMPLETE,fun2) function fun2(v) { trace('test'); } Root - это таймлайн ![]() Root.gotoAndStop(3) Доступны мувики в 3 кадре и т.д. Добавлено через 7 минут ZergMaster ну есть еще сцены ))В конце отрезков только диспатчить события. Добавлено через 18 минут Или в 1 кадре включи enterframe и определяй currentframe и по нему диспатч от доступных мувиков в кадре. Других вариантов не вижу Последний раз редактировалось Babylon; 01.10.2014 в 04:23. |
|
|||||
|
Babylon, не догадался сначала делать переход к нужному кадру
![]() mc.gotoAndStop(2); mc.mc2.addEventListener(Event.COMPLETE, func); function func(e:Event):void { trace(e.target.name); } ![]()
__________________
кто не отвечает, того garbage collector забирает |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|