Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.02.2015, 16:49
FREEART вне форума Посмотреть профиль Отправить личное сообщение для FREEART Найти все сообщения от FREEART
  № 1  
Ответить с цитированием
FREEART

Регистрация: Aug 2009
Сообщений: 12
Attention Таймер 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();

Старый 12.02.2015, 20:56
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
По окончаниям, когда-то написал такую функцию:
Код AS3:
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;
}
Код AS3:
for (var i:int = 0; i < 30; i++)
{
	trace(i, StringUtils.getEnd(i, "день", "дня", "дней"))
}
Цитата:
0 дней
1 день
2 дня
3 дня
4 дня
5 дней
6 дней
7 дней
8 дней
9 дней
10 дней
11 дней
12 дней
13 дней
14 дней
15 дней
16 дней
17 дней
18 дней
19 дней
20 дней
21 день
22 дня
23 дня
24 дня
25 дней
26 дней
27 дней
28 дней
29 дней
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 13.02.2015, 11:44
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 3  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Код:
if(int(lastDigits.charAt(len-2))==1)
Уффф...

Старый 13.02.2015, 12:36
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
:о)) какие еще варианты?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 13.02.2015, 13:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Последняя цифра в числе (или первая?)
Код AS3:
number % 10
Пред-последняя
Код AS3:
int((number % 100) / 10)

Старый 13.02.2015, 20:19
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 6  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
А, прикольно.
Век живи - век учись. Послал плюсик тебе в карму.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 14.02.2015, 02:50
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
http://www.newgrounds.com/bbs/topic/1321473

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
Таймер

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 11:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.