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

Вернуться   Форум Flasher.ru > Блоги > TanaTiX

Оценить эту запись

Про анимацию сказ(JSFL).

Запись от TanaTiX размещена 22.02.2011 в 00:13
Обновил(-а) TanaTiX 22.02.2011 в 22:06

Идет у нас сейчас в конторе проект. В нем среди всякого прочего есть персонажи с очень сложной анимацией. Много ключевых кадров, анимаций, вложенных клипов и пр. Много - это примерно около 30 слоев по несколько сотен кадров преимущественно покадровой анимации, да еще и с анимацией внутри мувиклипов.
И вот когда таких чудиков было нарисовано 3-4 штуки. Стали вставлять все это чудо в проект, как выяснился один неприятный момент: fps игрушки составляет 30, а анимации - 15. Благо разница оказалась кратной.
Не буду описывать все эмоциональные переживания программера и художника, которые занимались этим проектом, сразу к коду, который родился через часок-другой гугления в свободное время (не без помощи того программера)

Код AS1/AS2:
var lib=fl.getDocumentDOM().library;//ссылка на библиотеку
var libs=lib.items;//массив элементов в бибилиотеке
var item;
 
var path;//путь/имя элемента в бмбмлиотеке
for(var j=0; j<libs.length; j++){//пробегаемся по всем элементам
	if(libs[j].itemType=="movie clip"){//находим мувики
		item=libs[j];
		path=item.name;//определяем имя мувика
		lib.editItem(path);//начинаем его редактировать
		var timeline=fl.getDocumentDOM().getTimeline();//таймлайн мувика
		var count=timeline.frameCount-1;//определение количества кадров
		if(count>0){//определяем только мувики с анимацией
			for(var i=count; i>=0; i--){//пробегаемся по всем кадрам
				timeline.currentFrame=i;
				timeline.insertFrames(1, true);//тут собственно копирование мувика
			}
		}
	}
}
Если кто не понял - это jsfl - инструмент для оптимизации работы во Flash IDE. Как видим никакой типизации, все больше напоминает запрограммированную последовательность действий, макрос (я одно время что-то похожее в Word-е делал).
И еще один момент. Этот код обрабатывает только мувики, находящиеся в библиотеке, следовательно, если при создании анимации вы ее не поместили в контейнер, то придется позже.

Уверен, что сейчас у данного метода найдутся недостатки - постите их сюда. А в остальном пользуйтесь, если кому пригодится.
Всего комментариев 5

Комментарии

Старый 22.02.2011 00:31 dimarik вне форума
dimarik
 
Аватар для dimarik
Вы бы пояснили, что этот скрипт вставляет в каждый кадр еще один кадр.
Старый 22.02.2011 15:05 i.o. вне форума
i.o.
 
Аватар для i.o.
Предлагаю слегка изменить название:
Про анимацию сказ (JSFL)
Старый 22.02.2011 22:08 TanaTiX вне форума
TanaTiX
 
Аватар для TanaTiX
i.o., не возражаю.
dimarik, у меня нет даже шанса на исправление
Я только немного уточню: не вставляет один, а продлевает на один, т.к. на выходе количество ключей анимации остается прежним.
Старый 22.02.2011 23:31 Котяра вне форума
Котяра
 
Аватар для Котяра
Цитата:
как видим никакой типизации, все больше напоминает запрограммированную последовательность действий
это называется javaScript )))
Старый 22.02.2011 23:55 TanaTiX вне форума
TanaTiX
 
Аватар для TanaTiX
Не понял, к чему это. Если в отношении типизации, так ActionScript тоже основан на JavaScript. Хотя точнее было бы сказать, что оба являются диалектами ECMAScript. Если про последовательность действия, так в том же ворде макросы пишутся VisualBasic. Если про название, так на то он и называется JSFL. Впрочем да, Javascript не ActionScript.
 

 


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


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