Re: Отчет времени на AS3
Добавлено: 17 фев 2010, 16:21
psix55
Можно. В коде выше просто не вычисляй day, sec, min, hour.
Можно. В коде выше просто не вычисляй day, sec, min, hour.
Код: Выделить всё
import flash.utils.Timer;import flash.events.TimerEvent;.............var timer = new Timer(n*1000,1);timer.start();timer.addEventListener(TimerEvent.TIMER, function(e:TimerEvent){ trace("прошло "+n+" секунд") }); Код: Выделить всё
// Создаём текстовое поле для отображения данных
var time_txt:TextField = new TextField();
time_txt.autoSize = TextFieldAutoSize.LEFT;
time_txt.x=10;
time_txt.y=10;
addChild(time_txt);
// Задаём дату до которой вести отчёт, пишем год, потом месяц (отсчёт месяцев начинается с 0), затем пишем число
var yourDate=new Date(2010,0,0);
var yourDateMsec=yourDate.getTime();
//
function F_countDown() {
// создаём класс Date , который отслеживает текущее время
var nowDate = new Date();
// Вычисляем количество милисекунд
var nowDateMsec=nowDate.getTime();
//
var msec=yourDateMsec-nowDateMsec;
// Делаем проверку на наступление даты
if (msec<=0) {
// Если наступило
time_txt.text="Уже наступило";
clearInterval(interval);
} else {
// Если ненаступило то продолжаем выполнение счётчика
// Вычисляем из общего количества милисекунд, количество секунд
var sec=Math.floor(msec/1000);
// Вычисляем из общего количества милисекунд, количество минут
var min=Math.floor(sec/60);
// Вычисляем из общего количества милисекунд, количество часов
var hour=Math.floor(min/60);
// Вычисляем из общего количества милисекунд, количество суток
var day=Math.floor(hour/24);
// Отсекаем от полученных секунд остаток от деления, т.е. то число которое осталось
// при делении на 60 так как в минуте 60 секунд
sec%=60;
// при делении на 60 так как в часе 60 минут
min%=60;
// при делении на 24 так как в сутках 24 часа
hour%=24;
// Записываем результат в текстовое поле
time_txt.text="Осталось: Дней "+day+", Часов: "+hour+", Минут: "+min+", Секунд: "+sec;
}
}
// Создаём setInterval для запуска нашей функции F_countDown,
// который будет запускать её раз в секунду потому что чаще нам не нужно
var interval=setInterval(F_countDown,1000);
// Запускаем функцию
F_countDown();