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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 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();
				}
			}

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

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

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


 


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


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