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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.03.2012, 16:45
s3dworld вне форума Посмотреть профиль Отправить личное сообщение для s3dworld Найти все сообщения от s3dworld
  № 1  
Ответить с цитированием
s3dworld

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Контроль анимации MovieClip'а

Всем доброго времени суток!

Имеется swf файл с анимацией персонажа. Внутри распиханы картинки, метки и скрипты. Например зацикливание проигрывания одной метки, переход от анимации удала к другой метки (к метке стояния). И ко всему этому я могу обратиться только через метки. Заранее оговорено представление меток:

Код:
<action>_<dir>
Например:

Код:
stay_left
walk_down_right
И вот я решил сделать функцию разворота animTurnLeft(), которая бы поворачивала объект против часовой стрелки. При этом я знаю какая в текущий момент выполняется анимация и какое направление:

Код AS1/AS2:
// Анимация
public static const TYPE_STAY		:uint		= 0;
public static const TYPE_WALK		:uint		= 1;
public static const TYPE_POUNCH		:uint		= 2;
public static const TYPE_FALL		:uint		= 3;
 
// Направление
public static const DIR_UP			:uint		= 0;
public static const DIR_UP_RIGHT		:uint		= 1;
public static const DIR_RIGHT			:uint		= 2;
public static const DIR_DOWN_RIGHT	:uint		= 3;
public static const DIR_DOWN			:uint		= 4;
public static const DIR_DOWN_LEFT		:uint		= 5;
public static const DIR_LEFT			:uint		= 6;
public static const DIR_UP_LEFT		:uint		= 7;
 
protected var animType				:uint		= TYPE_STAY;		// Текущий тип
protected var animDir				:uint		= DIR_UP;			// Текущее направление
Беру текущее направление и высчитываю новое. Но если бы я переходил просто по метке:

Код AS3:
gotoAndPlay("walk_left");
Потом:

Код AS3:
gotoAndPlay("walk_up_left");
То у меня каждый раз анимация начиналась бы сначала. А было бы здорово продолжать её с того же локального кадра (конечно с учётом что количество кадров в одном типе анимации одинакова - а так оно и есть). Через currentFrame я могу получить индекс текущего кадра, например запомнить его при повороте, но он текущий, а не локальный. Как реализовать то что я задумал?

Старый 05.03.2012, 18:34
botbot вне форума Посмотреть профиль Отправить личное сообщение для botbot Найти все сообщения от botbot
  № 2  
Ответить с цитированием
botbot

Регистрация: Feb 2011
Сообщений: 100
currentLabels - все метки в клипе. Можешь получать по этому массиву номер кадра у метки и прибавлять дельту, которая уже проиграна.

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

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

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


 


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


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