Цитата:
Сообщение от Кот Баюн
вопрос в том, что не знаю, как на практике прикрутить код от обычного таймера к 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 минут
упс
только это я почему-то написал для случая, когда счет при закрытии флешки останавливается, а при старте возобновляется снова
если надо, чтоб продолжался, то будет еще проще.., только до меня не доходит практический смысл такого счетчика, поэтому пусть так пока (если что переделать не сложно)