Форум 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)
-   -   Flash часы (http://www.flasher.ru/forum/showthread.php?t=122653)

Terr 15.03.2009 19:23

Flash часы
 
Помогите новичку!
Сделал часы, осталось прикрутить к ним реальное время, но как я не знаю.
Помогите советом как это сделать!
Заранее спасибо :)

gmaneye 15.03.2009 19:27

Код AS1/AS2:

        var d:Date = new Date();
        sec._rotation = d.getSeconds() * 6 + d.getMilliseconds()/160 + 180;
        min._rotation = d.getMinutes() * 6 + d.getSeconds()/10+180;
        hour._rotation = d.getHours() * 30 + d.getMinutes()/2+180;


Stargazer 15.03.2009 20:01

gmaneye, это даже будут стрелочные.

Terr 15.03.2009 20:05

gmaneye, если можно дайте пояснения по коду.
Часы сделал стрелочные.
Вопрос в том, как оживить их на сайте?

gmaneye 15.03.2009 20:15

Пояснения к написанному:
Код AS1/AS2:

var d:Date = new Date();

в переменной d будет содержаться время тоесть
можно получить секунды таким путём
Код AS1/AS2:

d.getSeconds()

можно получить минуты таким путём
Код AS1/AS2:

d.getMinutes()

можно получить часы таким путём
Код AS1/AS2:

d.getHours()

а ещё миллисекунды
Код AS1/AS2:

d.getMilliseconds()

тоесть такая запись:
Код AS1/AS2:

trace("The time is: "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());

Выведет например такое The time is: 19:10:01 (зависит от текущего времени :)
sec,min,hout это имена MovieClip'ов а именно
sec - секундная стрелка
min -минутная стрелка
hour - часовая стрелка
свойство _rotation означает поворот (кстати измеряется в градусах)

этот код вычесляет угол поворота секундной стрелки

Код AS1/AS2:

d.getSeconds() * 6 + d.getMilliseconds()/160 + 180;

PS: чтобы оживить пишем что то типа такого:

Код AS1/AS2:

var ticer:Number;
 
function tic():Void {
        var d:Date = new Date();
        sec._rotation = d.getSeconds() * 6 + d.getMilliseconds()/160 + 180;
        min._rotation = d.getMinutes() * 6 + d.getSeconds()/10+180;
        hour._rotation = d.getHours() * 30 + d.getMinutes()/2+180;
}
 
ticer = setInterval(tic,1);


Terr 15.03.2009 20:33

Спасибо за емкое пояснение как оживить :)
Я тока начинаю поэтому делал так:
Код AS1/AS2:

sec.onEnterFrame = function () {
        sec._rotation +=1;
}
min.onEnterFrame = function () {
        min._rotation +=0.0167;
}
hour.onEnterFrame = function () {
        hour._rotation +=0.0003;
}

Может глупо но тикали :).
А теперь вторая часть вопроса: я ставлю часы на сайт и мне надо что бы они показывали настоящее время, мне нужна эта связка?

gmaneye 15.03.2009 21:08

А что вы понимаете под "настоящим временем"?

Terr 15.03.2009 21:20

Прописали код,
Код AS1/AS2:

var ticer:Number;
 
function tic():Void {
        var d:Date = new Date();
        sec._rotation = d.getSeconds() * 6 + d.getMilliseconds()/160 + 180;
        min._rotation = d.getMinutes() * 6 + d.getSeconds()/10+180;
        hour._rotation = d.getHours() * 30 + d.getMinutes()/2+180;
}
 
ticer = setInterval(tic,1);

часы пошли, но ведь время они показывают не правильно, т.е. мы запустили только стрелки.
что дальше? :wacko:
грубо говоря, как подвести часы ?:confused:

alekslitvinenk 15.03.2009 22:00

у вас, наверное, системное время неправильно выставлено

DarkLight 15.03.2009 22:32

Цитата:

ticer = setInterval(tic,1);
Не будет оно с такой частотой выполняться, сделайте интервал порядка 20-30 мс. И зачем вам стрелка с точностью до миллисекунд?


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

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