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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 19.05.2010, 19:02
SeaQuest вне форума Посмотреть профиль Отправить личное сообщение для SeaQuest Найти все сообщения от SeaQuest
  № 4  
Ответить с цитированием
SeaQuest
 
Аватар для SeaQuest

Регистрация: Jun 2007
Адрес: Москва
Сообщений: 86
Понятно. Пока что нарыл маленькое спасение в виде getTimer(), благодаря которому можно рассчитать разницу задержки. От этого можно плясать, написав свой таймер, который поддерживает паузу. А раз есть таймер с паузой, то можно написать класс менеджер всех таймеров, копирующий работу setInterval и setTimeout, но с возможностью паузы. Это позволит сделать дело практически не меняя код. Но я боюсь как бы не вышло, что я ставлю на паузу, а некоторая часть кода может выполниться не так как-нить. Всё таки 11000 чистых строк кода, а с пробелами и каментами за 15 в голове тяжело держать. Делать по вашему принципу уже поздняк. Вот так вот сначала отсутствие ТЗ, а потом требования, после "это были самые последние требования".
Вообще у разработчиков 3 скрипта хорошая трава. Спасибо хоть за getTimer().

Добавлено через 3 минуты
Кстати, вот этот код с паузой:
Код AS3:
package {
 
	import flash.utils.Timer;
	import flash.utils.getTimer;
 
	public class PerfectTimer {
 
		public var _delay:Number;
		public var _lastTime:Number;
		public var _repeat:Number;
		public var _thisTime:Number = 0;
		public var timer:Timer;
 
		public function PerfectTimer(delay:Number, repeat:uint=0):void {
			_delay = delay;
			_repeat = repeat;
 
			timer = new Timer(delay,repeat);
		}
 
		public function start():void {
			_lastTime = getTimer();
			timer.start();
		}
 
		public function pause():void {
			timer.stop();
			_thisTime = getTimer() - _lastTime;
		}
 
		public function repeat(new_delay:Number):void {
			_lastTime = getTimer();
			timer.delay = new_delay;
		}
 
		public function resume():void {
			if (_thisTime > timer.delay) {
				_thisTime = timer.delay;
			}
			timer.delay -= _thisTime;
			_lastTime = getTimer();
			timer.start();
 
			_thisTime = 0;
		}
	}
}

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

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

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


 


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


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