Форум 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=105307)

khorokhorya 12.12.2007 18:05

Как перемешать и часовую стрелку в часах?
 
Вложений: 1
Иходник я брала с этого сайта, кто может подсказать, как заставить и часовую стрелку перемешаться адекватно времени, а не только минутную.
Сейчас она стоит на одном часе до 59 минут а потом перепрыгивает на следующий.

vivanov 12.12.2007 18:33

Я просто прописал в яндексе(когда мне нужно было сделать часы) "урок часы во flash" и он мне выдал кучу сайтов где написано как это сделать вместе с часовой стрелкой... хз

CorC 13.12.2007 10:06

Код:

        private function Clock(MC) {
                var D = new Date();
                var M = D.getMinutes();
                var H = D.getHours();
                var S = D.getSeconds();
                MC.s._rotation = S/60*360-90;
                M = (M+S/60);
                MC.m._rotation = M/60*360-90;
                MC.h._rotation = (H+M/60)/12*360-90;
        }


alekslitvinenk 13.12.2007 10:18

Для того чтобы повернуть секундную стрелку достаточно:
Код:

MC.s._rotation = S*6
;

CorC 13.12.2007 10:42

У меня в часах изначальное положение стрелки горизонтальное на 3 часа :) А 0 не убирал... сам не знаю почему ;)

alekslitvinenk 13.12.2007 10:57

Вложений: 1
Тогда наверное более универсальным способом будет:
Код:

var id:Number = setInterval(rotateSec, 1000);
rotateSec(){
    MC.s._rotation += 6;
}

а вообще у Мунка есть замечательный пример как решить тривиальную задачу нетривиальным способом, т.е используя ООП и паттерн MVC.

glin 13.12.2007 17:16

Вот рабочий код.

Код:

sek.onEnterFrame=function(){
        vrem=new Date();
        sec=vrem.getSeconds()+21;  // +21 т.к. у меня в исходном положении сек. стрелка нарисована на 39-й секунде.

        minuta=vrem.getMinutes();  // В исходном положении мин. стрелка нарисована на 12-ти.

        chasy=vrem.getHours()-3;  // -3 т.к. у меня в исходном положении часовая стрелка нарисована на 3 часа.
       
        if (chasy > 12) {
                chasy -= 12;
        }
        this._rotation=sec*6;
        _root["min"]._rotation=minuta*6+sec/10;
        _root["chas"]._rotation=chasy*30+minuta/2;
}

Если коротко, то идея в том, что вращение часовой стрелки происходит постоянно в зависимости от положения минутной (последняя строка...).

Надеюсь кому-то помог...

iNils 13.12.2007 18:01

glin, в следующий раз, когда будете помогать кому-то, оформляйте свой код тегами [code][/code].

glin 13.12.2007 18:23

учту, постараюсь...


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

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