Таймер AS3 - вопрос по падежам
ОТБЛАГОДАРЮ, ЕСЛИ ПОМОЖЕТЕ
Люди, привет. Помогите с таймером. Нашел код на форуме, поставил во флеш, вроде бы все работает нормально, отображается дата и время.
Что мне нужно сделать:
Сейчас цифры выводятся просто во флеш ролик, мне нужно, чтобы дата и цифры выводились в текстовое поле и я мог на эти текстовые поля поставить другой шрифт и также правильно должен писаться падеж, сейчас пишется "103 дней", а нужно "103 дня".
Вот выложил ссылку, как работает таймер: http://freeart.com.ua/8p/timer.html
Исходник флешки: http://freeart.com.ua/8p/timer.fla
Собственно сам код флешки:
Код AS3:
// Создаём текстовое поле для отображения данных
var time_txt:TextField = new TextField();
time_txt.autoSize = TextFieldAutoSize.LEFT;
time_txt.x=200;
time_txt.y=100;
addChild(time_txt);
// Задаём дату до которой вести отчёт, пишем год, потом месяц (отсчёт месяцев начинается с 0), затем пишем число
var yourDate=new Date(2015,4,27); // 01.01.2014
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;
// Записываем результат в текстовое поле
var daysCase:String = ' дней ';
var lastDigitDays:int = day % 10;
var twoLastDigitDays:int = day % 100;
if (lastDigitDays == 1)
{
if (twoLastDigitDays!=11) daysCase = ' день ';
}
else if (lastDigitDays < 5)
{
if (twoLastDigitDays<12 && twoLastDigitDays>14) daysCase = ' дня ';
}
time_txt.text= day + daysCase + "\n+" + appendFirstZero(hour) + ":"
+ appendFirstZero(min) + ":" + appendFirstZero(sec);
}
}
function appendFirstZero(val:int) : String
{
if (val<10) return "0" + String(val);
else return String(val);
}
// Создаём setInterval для запуска нашей функции F_countDown,
// который будет запускать её раз в секунду потому что чаще нам не нужно
var interval=setInterval(F_countDown,1000);
// Запускаем функцию
F_countDown();
|