Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Отсчет до определенной даты (http://www.flasher.ru/forum/showthread.php?t=89405)

Anoxia 14.12.2006 23:48

Отсчет до определенной даты
 
реально ли такое сделать, чтобы велся отсчет до определенной даты.

к примеру чтобы выводилось:

До нового года осталось 15 дней 6 часов 42 минуты


может у кого есть уже чтолибо подобное

желательно с возможностью вставки любой даты
а флешка брала бы системную дату и время

Aziz Zaynutdinoff 15.12.2006 03:05

Писал в своё время для отсчёта под Halloween

Код:

this.onEnterFrame = function() {
        var deadline:Date = new Date(ГОД, МЕСЯЦ, ЧИСЛО);
        var nowDate:Date = new Date();
        var FullDayInMonth:Array = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        FullDayInMonth[1] = (nowDate.getFullYear()%4 == 0) ? 29 : 28;
        //
        var cy:Boolean = (deadline.getFullYear() == nowDate.getFullYear()) ? true : false;
        //
        var monthFor:Number = (cy) ? deadline.getMonth()-nowDate.getMonth() : deadline.getMonth()+(12*(deadline.getFullYear()-nowDate.getFullYear()))-nowDate.getMonth();
        monthFor = (deadline.getDate()-nowDate.getDate()<0) ? monthFor-1 : monthFor;
        cy = (deadline.getDate()-nowDate.getDate()<0) ? true : false;
        var dayFor:Number = (cy) ? FullDayInMonth[nowDate.getMonth()]-nowDate.getDate()+deadline.getDate() : deadline.getDate()-nowDate.getDate();
        if (monthFor>0) {
                countdown = dayFor;
                var _check = nowDate.getMonth();
                for (var i:Number = 0; i<monthFor; i++) {
                        _check = (_check > 11) ? 0 : _check;
                        countdown += FullDayInMonth[_check];
                        _check++;
                }
        } else {
                countdown = dayFor;
        }
        var strCount:String = countdown.toString();
        strCount = (strCount.length > 1) ? strCount.substr(1, strCount.length + 1) : strCount;
        var __int:Number = parseInt(strCount);
        if (__int < 5 && __int > 1){
                days = "дня";
        } else if (__int == 1){
                days = "день";
        } else if (__int > 5){
                days = "дней";
        }
};

Пользуйся :) только не забудь число поменять.

Anoxia 15.12.2006 09:41

А есть какой нить рабочий пример? тобишь исходник.

а то в МХ чето нифига не получается

Aziz Zaynutdinoff 15.12.2006 10:38

Это и есть рабочий... ты главное тогда суть улови, да перепиши под MX! :)
Странные вы... вам дай, да ещё и переделай...


upd:
Брррррр-рррр... что я говорю... там же просто мат вычисления... работает всё под MX. Просто это не должно было быть тупым копированием. Исправь так как тебе надо.

Anoxia 16.12.2006 12:28

нашел вот такой скриптик.

Код:

_root.createTextField("time_txt", 50, 100, 0, 500, 20);
with (time_txt) {
border = false;
}
yourDate = new Date(2006, 12, 31);
yourDateMsec = yourDate.getTime();
F_countDown = function () {
nowDate = new Date();
nowDateMsec = nowDate.getTime();
var msec = yourDateMsec-nowDateMsec;
if (msec<=0) {
time_txt.text = "It`s Time";
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);
sec %= 60;
min %= 60;
hour %= 24;
time_txt.text = +day+" дней "+hour+" часов "+min+" минут "
}
};
interval = setInterval(F_countDown, 1000);
F_countDown();

он сам создает текстовое поле но почему то гонит на 30 дней

чтобы он показывал остаток до нового года приходится ставить такую дату yourDate = new Date(2006, 12, 01);

Bорон 29.10.2007 01:21

Цитата:

почему то гонит на 30 дней
Если я правильно понял, то тут путаница вот в чем:
Цитата:

getMonth() : Number
Returns the month (0 for January, 1 for February, and so on) of the specified Date object, according to local time.
Цитата:

public setMonth(month:Number, [date:Number]) : Number

Sets the month for the specified Date object in local time and returns the new time in milliseconds. Local time is determined by the operating system on which Flash Player is running.

Availability: ActionScript 1.0; Flash Player 5

Parameters
month:Number - An integer from 0 (January) to 11 (December).
Отсчет месяцев начинается с 0.

etc 29.10.2007 01:51

Ворон, на даты постов смотрел, нет?


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

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