Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.09.2014, 23:44
djken вне форума Посмотреть профиль Отправить личное сообщение для djken Посетить домашнюю страницу djken Найти все сообщения от djken
  № 1  
Ответить с цитированием
djken
 
Аватар для djken

Регистрация: May 2010
Адрес: Краснодар
Сообщений: 182
Отправить сообщение для djken с помощью ICQ Отправить сообщение для djken с помощью Skype™
Question Как отслеживать остановку анимации?

На временной шкале есть различные наборы анимации объекта, помеченные метками frameLabel - a1, a2, a3, a4.... и.т.д.
Объект с каждым разом будет рандомно анимироваться, проигрывая разные отрезки анимаций - например: a1, a4, a9, a2....
Как узнать, что текущий отрезок анимации проигрался, чтобы перейти к другому отрезку?
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок экрана 2014-09-30 в 22.42.16.png
Просмотров: 94
Размер:	30.2 Кб
ID:	31167  
__________________
кто не отвечает, того garbage collector забирает

Старый 30.09.2014, 23:57
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 2  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Можно в конце каждого отрезка вставить код:
Код AS3:
dispatchEvent(new Event(Event.COMPLETE))
А потом слушать:
Код AS3:
animation.addEventListener(Event.COMPLETE, ...)

Старый 01.10.2014, 03:19
djken вне форума Посмотреть профиль Отправить личное сообщение для djken Посетить домашнюю страницу djken Найти все сообщения от djken
  № 3  
Ответить с цитированием
djken
 
Аватар для djken

Регистрация: May 2010
Адрес: Краснодар
Сообщений: 182
Отправить сообщение для djken с помощью ICQ Отправить сообщение для djken с помощью Skype™
Спасибо. Работает. Но есть нюанс.

Вся эта анимация находится в экземпляре, который находится на втором кадре внтури другого мувика. Весь скрипт пишу в корневом таймлайне, оттуда и обращаюсь к мувику. В этом случае события не отлавливаются.
Но если переместить мувик на первый кадр - то события ловятся нормально.

ВОПРОС 1: Можно ли ловить события от экземляра, который находится не на первом кадре? Как правильнее сделать?

ВОПРОС 2: Нашел в доках события FrameLabel, появившиеся в ActionScript 3.0 - они не для моего случая? Только я пока не разобрался как ими пользоваться - в примечании написано: у этого события нет ни «фазы захвата», ни «фазы передачи», поэтому прослушиватели событий должны добавляться непосредственно в объекты FrameLabel.
__________________
кто не отвечает, того garbage collector забирает

Старый 01.10.2014, 03:31
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 4  
Ответить с цитированием
Babylon
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
var mc=MovieClip(root);
mc.addEventListener(Event.COMPLETE, ...)


Последний раз редактировалось Babylon; 01.10.2014 в 03:42.
Старый 01.10.2014, 03:56
djken вне форума Посмотреть профиль Отправить личное сообщение для djken Посетить домашнюю страницу djken Найти все сообщения от djken
  № 5  
Ответить с цитированием
djken
 
Аватар для djken

Регистрация: May 2010
Адрес: Краснодар
Сообщений: 182
Отправить сообщение для djken с помощью ICQ Отправить сообщение для djken с помощью Skype™
Babylon, спасибо за ответ, но это не то.
Переформулирую вопрос: как обратиться из кода на первом кадре к мувику, который находится, наример, на 3 ключевом кадре?

ZergMaster, если так, то тогда понятно, что имел ввиду Babylon. И мой ответ на свой вопрос тоже в таком случае понятен.

Одно единственное, хотелось бы конечно код более централизованным написать, а не раскидывать по кадрам...
__________________
кто не отвечает, того garbage collector забирает

Старый 01.10.2014, 03:52
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 6  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Babylon наверное имеет в виду, что можно диспатчить событие не от имени данного мувика, а от рута, и туда же подписываться. То есть в конце отрезков
Код AS3:
var mc=MovieClip(root);
mc.dispatchEvent(new Event(Event.COMPLETE));
и слушать из корневого таймлайна
Код AS3:
var mc=MovieClip(root);
mc.addEventListener(Event.COMPLETE, ...)
__________________
while(live()) { hope(); }

Старый 01.10.2014, 04:04
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 7  
Ответить с цитированием
Babylon
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Код AS3:
var mc= MovieClip(root);
mc.addEventListener(Event.COMPLETE,fun2)
function fun2(v)
{
	trace('test');
}
К мувику надо сначало перейти. Если он в 3 кадре.
Root - это таймлайн
Root.gotoAndStop(3)
Доступны мувики в 3 кадре и т.д.

Добавлено через 7 минут
ZergMaster ну есть еще сцены))

В конце отрезков только диспатчить события.

Добавлено через 18 минут
Или в 1 кадре включи enterframe и определяй currentframe и по нему диспатч от доступных мувиков в кадре. Других вариантов не вижу


Последний раз редактировалось Babylon; 01.10.2014 в 04:23.
Старый 01.10.2014, 04:34
djken вне форума Посмотреть профиль Отправить личное сообщение для djken Посетить домашнюю страницу djken Найти все сообщения от djken
  № 8  
Ответить с цитированием
djken
 
Аватар для djken

Регистрация: May 2010
Адрес: Краснодар
Сообщений: 182
Отправить сообщение для djken с помощью ICQ Отправить сообщение для djken с помощью Skype™
Babylon, не догадался сначала делать переход к нужному кадру

Код AS3:
mc.gotoAndStop(2);
mc.mc2.addEventListener(Event.COMPLETE, func);
 
function func(e:Event):void {
	trace(e.target.name);
}
Все работает. Спасибо
__________________
кто не отвечает, того garbage collector забирает

Создать новую тему Ответ Часовой пояс GMT +4, время: 07:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 07:05.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.