|
|
|||||
Регистрация: Aug 2009
Сообщений: 12
|
Таймер AS3 - вопрос по падежам
ОТБЛАГОДАРЮ, ЕСЛИ ПОМОЖЕТЕ
Люди, привет. Помогите с таймером. Нашел код на форуме, поставил во флеш, вроде бы все работает нормально, отображается дата и время. Что мне нужно сделать: Сейчас цифры выводятся просто во флеш ролик, мне нужно, чтобы дата и цифры выводились в текстовое поле и я мог на эти текстовые поля поставить другой шрифт и также правильно должен писаться падеж, сейчас пишется "103 дней", а нужно "103 дня". Вот выложил ссылку, как работает таймер: http://freeart.com.ua/8p/timer.html Исходник флешки: http://freeart.com.ua/8p/timer.fla Собственно сам код флешки: // Создаём текстовое поле для отображения данных 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(); |
|
|||||
По окончаниям, когда-то написал такую функцию:
public static function getEnd(number:int, one:String = "", e234:String = "а", more:String = "ов"):String { var lastDigits:String = String("00000" + number); var len:int = lastDigits.length; if(int(lastDigits.charAt(len-2))==1) return more; switch(int(lastDigits.charAt(len-1))) { case 1: return one; case 2: case 3: case 4: return e234; } return more; } for (var i:int = 0; i < 30; i++) { trace(i, StringUtils.getEnd(i, "день", "дня", "дней")) } Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Последняя цифра в числе (или первая?)
Пред-последняя
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
|
Часовой пояс GMT +4, время: 11:04. |
|
« Предыдущая тема | Следующая тема » |
Теги |
Таймер |
|
|