Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как задать время в часах? (http://www.flasher.ru/forum/showthread.php?t=153176)

motoroller 30.03.2011 00:17

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

Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.utils.Timer;
        import flash.events.TimerEvent;
 
        public class AnalogClock extends Sprite
        {
 
                var date:Date = new Date();
                var hours:int = date.hours;
                var minutes:* = date.minutes;
                var seconds:* = date.seconds;
 
                var timer:Timer = new Timer(1000);
 
                public function AnalogClock():void
                {
 
                        hourHand.rotation = hours * 30 + (minutes * 0.5);
                        minuteHand.rotation = minutes * 6;
                        secondHand.rotation = seconds * 6;
 
                        timer.addEventListener(TimerEvent.TIMER, updateClock);
                        timer.start();
 
                        digitalClock();
                }
 
                private function updateClock(e:TimerEvent):void
                {
                        date = new Date();
 
                        hours = date.hours;
                        minutes = date.minutes;
                        seconds = date.seconds;
 
                        hourHand.rotation = hours * 30 + (minutes * 0.5);
                        minuteHand.rotation = minutes * 6;
                        secondHand.rotation = seconds * 6;
 
                        digitalClock();
                }
 
                /* Digital Clock */
 
                private function digitalClock():void
                {
 
                        /* If number is just one digit, add a 0 to the left */
 
                        if (String(minutes).length<2)
                        {
                                minutes="0"+minutes;
                        }
 
                        if (String(seconds).length<2)
                        {
                                seconds="0"+seconds;
                        }
 
                        /* Set TextFields */
 
                        clock.text=hours+":"+minutes;
                        clockLP.text=hours+":"+minutes;
                }
        }
}

Вообщем все работает, время береся локально и тд ...
так вот у меня задача сделать несколько одинаковых часов, чтобы они запускались с параетром mosow, london
и тд ...
Так вот вопрос, если я буду брать локальное время, то я уже изначально не знаю в каком часовом поясе у меня находится пользователь ... Поэтому след вопрос как указать чтобы он показывал время определнных городов независимо от того, где запускается флешка, какой часовой регион, думал сначала через php запихнуть, время но потом увидел, что в функции updateClock он опять время берет локально, не делать же запросы все время к серверу.

AlexsWulf 30.03.2011 00:29

Можно попробовать вычислить часовой пояс исходя из
Код AS3:

date.getTimezoneOffset()

И уже от этого отталкиваться дальше.

motoroller 30.03.2011 00:53

А может можно так dateUTC, сразу брать по гринвичу а потом если надо прибавлять часы?

DZHETIGAPA 30.03.2011 01:00

А что ты у нас спрашиваешь? Ты ведь делаешь?

Намного проще делать так, как сказал АлексВулф. там сразу разница в минутах пишется.

motoroller 30.03.2011 01:05

так скажите а там разница между чем и чем? местным и гринвичем?
Так мне эта разница не особо нужна ...

Добавлено через 16 минут
Еще вопросик, сдеал через hoursUTC потом тупо прибавил ну москва +4 ...
а вот цифровые часы мне чушь написали ...
надо скажите как в минутах прибалвять или в секундх?

-De- 30.03.2011 01:29

Цитата:

надо скажите как в минутах прибалвять или в секундх?
Код AS3:

date.minutes += AnyMinutesOffset;

Анлагоично в сендуках.
PS:
Код AS3:

if (String(minutes).length<2)

- плохо соответствует духу, по-моему. Лучше
Код AS3:

if ((String(minutes).length<2).toString().length == 4)



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

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