Показать сообщение отдельно
Старый 07.06.2011, 15:57
XeODimaN вне форума Посмотреть профиль Отправить личное сообщение для XeODimaN Найти все сообщения от XeODimaN
  № 1  
Ответить с цитированием
XeODimaN

Регистрация: Apr 2011
Сообщений: 16
По умолчанию проблема с циклом

Не хватает ума понять, где ошибка.
Общая суть: Есть анимация из сорока кадров. При нажатии на кнопку, анимация включается с текущего момента и идет до момента назначенного на эту кнопку. Если анимация дошла до конца (40 кадр), а нужный момент еще не достигнут (например: из 30 кадра надо перейти в 5ый), тоанимация проигрывается с 1го кадра.
Идея реализации: цикл в каждом кадре проверяет свою позицию. если позиция на последнем кадре, то происходит переход на 1ый кадр + прибавляется еще 1; если анимация достигла нужного места, то она останавливается. А уж для того, чтобы это была анимация, а не мгновенный переход, есть таймеры, которые переводит анимацию на 1 кадр вперед только через 1/30 секунды.
Только вот все это не работает и не могу понять почему!)Может есть простые пути, а я загнался?

Код AS3:
			function onClick(e:MouseEvent):void
			{
			for (var i:int = 0;i<41;i++){
			var curframe:int;
			curframe = MovieClip(root).currentFrame;
			if (curframe == 40){
				MovieClip(root).gotoAndStop(1);
				var myTimer1:Timer = new Timer(33,1);
				myTimer1.start();
				myTimer1.addEventListener(TimerEvent.TIMER, nextframe);
				function nextframe(e:TimerEvent):void {
				MovieClip(root).nextFrame();
				}
				}
			if (curframe == 20){
				stop();
				break;
				}
			else{
			var myTimer2:Timer = new Timer(2000,1);
				myTimer2.addEventListener(TimerEvent.TIMER, nextframe2);
				myTimer2.start();
				function nextframe2(e:TimerEvent):void {
				MovieClip(root).nextFrame();
				}
			}