![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Цитата:
Цитата:
Цитата:
Но по сути это то же самое, что написать код в кадре =)
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
это если одна анимация, я писал про несколько: у одной конец в 23 кадре, у другой в 101, у третьей в 115
Цитата:
Цитата:
по сути да, но на деле - нет, так как весь код все-таки хранится в одном месте и при разработке к примеру во FD, ты видишь что и где написано, но опять в моем случае я считаю лучше в кадрах ![]()
__________________
low + |
|
|||||
|
Цитата:
__________________
...вселенская грусть |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
gloomyBrain, имеются ввиду вложенные анимации.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
.
|
А если пробежаться по дереву и навесить addFrameScript каждому ребенку, имеющему totalFrames > 1 или еще по каким-нибудь признакам? Все это дело завернуть в класс, который укажете в качестве base-класса в linkage, можно даже jsfl'ом, и скомпилить им сразу.
|
|
|||||
|
Регистрация: Aug 2007
Адрес: Москва
Сообщений: 56
|
Цитата:
Код в кадрах это плохо. |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Цитата:
для 10 анимаций делаешь массив анимаций, можно сделать именованный хэш список // массив анимаций public var animationArray:Array =[] /*of MovieClip*/ private var _currentAnimation:MovieClip; // здесь по логике запускаем необходимую анимацию public function game():void { //......... // запускаем нужный клип playAnimation(animationArray[8]); //........ } public function playAnimation(animation:MovieClip):void { _currentAnimation = animation; animation.addFrameScript(animation.totalFrame-1, endPlaying); animation.play(); } public function endPlaying():void { _currentAnimation.stop(); // если надо то диспатчим событие, хотя мы уже в хэндлере события } минус в том что неизвестен currentTarget и анимации запускаются строго по одной ЗЫ: смотрим тонкости package { public class Delegate { public static function create(handler:Function,...args):Function { return function(...innerArgs):void { handler.apply(this,innerArgs.concat(args)); } } } } //Теперь мы можем вызывать нашу функцию с параметрами: package { import flash.display.*; public class main extends Sprite { public function main() { //... } // массив анимаций - заполняется отдельным методом - здесь не указан.. public var animationArray:Array =[] /*of MovieClip*/ // здесь по логике запускаем необходимую анимацию public function game():void { //......... // запускаем нужный клип playAnimation(8); //........ } public function playAnimation(ind:int):void { var animation:MovieClip = animationArray[ind] as MovieClip; animation.addFrameScript(animation.totalFrame-1, Delegate.create(endPlaying,ind)); animation.play(); } public function endPlaying(ind:int):void { var animation:MovieClip = animationArray[ind] as MovieClip; animation.stop(); trace(ind); // если надо то диспатчим событие, хотя мы уже в хэндлере события } }
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 08.12.2009 в 14:15. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|