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

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

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

Регистрация: Dec 2007
Сообщений: 9
По умолчанию Прямой отсчёт от даты события

Уважаемые профессионалы, нужна ваша помощь.
Нашла в сети код для реализации во флэш прямого отсчёта даты (метрики). Код работает, но к сожалению считает только дни.
Код:
// Создаём текстовое поле для отображения данных
//_root.createTextField("time_txt", 1, Stage.width/2-100, Stage.height/2-10, 200, 20);
var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "Tahoma";
with (time_txt) {
	border = true;
	borderColor = 0xff0000;
	/*Здесь можно изменить цвет рамки*/
	background = true;
	backgroundColor = 0xcccccc;
	/*Здесь можно изменить цвет фона*/
	autoSize = true;
	textColor = 0xff0000;
}
time_txt.setNewTextFormat(my_fmt);
// Задаём дату до которой вести отчёт, пишем год, потом месяц (отсчёт месяцев начинается с 0), затем пишем число
yourDate = new Date(2001, 1, 15);
var day:Number=yourDate.getDate();

year=yourDate.getFullYear();
yourDateMsec = yourDate.getTime();
//
F_countDown = function () {
	// создаём класс Date , который отслеживает текущее время
	nowDate = new Date();
	// Вычисляем количество милисекунд
	nowDateMsec = nowDate.getTime();
	//
	var msec = yourDateMsec-nowDateMsec;
	// Делаем проверку на наступление даты
	if (msec>=0) {
		// Если наступило
		//time_txt.text = "Уже наступило";
		//clearInterval(interval);
	} else {
		// Если ненаступило то продолжаем выполнение счётчика
		// Вычисляем из общего количества милисекунд, количество секунд
		var sec:Number = 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 countdown:Number = (Math.abs(day))-1;
		var strCount:String = countdown.toString();
		//trace(strCount);
	//strCount = (strCount.length>1) ? strCount.substr(1, strCount.length+1) : strCount;
	strrCount = strCount.substr(-1)
	//trace(strCount);
	//var __int:Number = parseInt(strrCount);
	if (strrCount==2 || strrCount==3 || strrCount==4) {
		days = "дня";
	} else if (strrCount==1) {
		days = "день";
	} else if (strrCount==5 || strrCount==6 || strrCount==7 || strrCount==8 || strrCount==9 || strrCount==0) {
		days = "дней";
	}
	time_txt.text="Со дня нашей свадьбы прошло "+ strCount+ " "+days;
		// Записываем результат в текстовое поле
		//time_txt.text ="Days: "+Math.abs(day)+", Hour: "+Math.abs(hour)+", Min: "+Math.abs(min)+", Sec: "+Math.abs(sec);
		//time_txt.text = "Days: "+Math.abs(day);
	}
};
// Создаём setInterval для запуска нашей функции F_countDown, 
// который будет запускать её раз в секунду потому что чаще нам не нужно
interval = setInterval(F_countDown, 1000);
// Запускаем функцию
F_countDown();
Просьба, помогите добавить в него исчисление месяцев и лет, с учетом високосных годов.
Что бы выглядело примерно так: "Со дня нашей свадьбы прошло: 5 лет, 8 месяцев, 24 дня"
Поиск по форуму не дал результатов, в основном обсуждаются вопросы создания обратного отсчета времени и то только в днях, часах, минутах и секундах.
Заранее огромное спасибо!
С уважением, Согдиана.


Последний раз редактировалось iNils; 23.12.2007 в 12:49.
Создать новую тему   Часовой пояс GMT +4, время: 10:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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