Показать сообщение отдельно
Старый 27.10.2014, 10:13
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 23  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Кот Баюн Посмотреть сообщение
вопрос в том, что не знаю, как на практике прикрутить код от обычного таймера к SO.
опыта мало в этом.
Код AS1/AS2:
var tf:TextField;
var curTime:Number;
var so:SharedObject;
var totTime:Number=6;
 
 
tf = this.createTextField("tf", 0, 0, 0, 200, 80);
so = SharedObject.getLocal("countdown", "/");
if (so.data.elapsedTime) {
	// процесс уже запущен, стартуем счет
	startCount();
 
 
} else {
	//нет данных, создаем и ждем отмашки на старт (любой клик)
	so.data.elapsedTime = 0;
	tf.text = "кликните где-нибудь для старта";
	this.onMouseDown = startCount;
 
}
 
function startCount() {
	curTime = getTimer();
	this.onEnterFrame = this_onEnterFrame;
	this.onMouseDown = null;
}
 
function this_onEnterFrame() {
	// добавляем время счетчику
	var time:Number = getTimer();
	so.data.elapsedTime += time-curTime;
	curTime = time;
 
	// показываем сколько прошло\осталось
	var d:Date = new Date();
	d.setTime(so.data.elapsedTime);
	tf.text = "истрачено  "+d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds();
	d.setTime(totTime*60*60*1e3-so.data.elapsedTime);
	tf.text += "\nосталось     "+d.getUTCHours()+":"+d.getUTCMinutes()+":"+d.getUTCSeconds();
}
Добавлено через 7 минут
упс
только это я почему-то написал для случая, когда счет при закрытии флешки останавливается, а при старте возобновляется снова
если надо, чтоб продолжался, то будет еще проще.., только до меня не доходит практический смысл такого счетчика, поэтому пусть так пока (если что переделать не сложно)