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

nur 19.08.2007 13:42

Часы с серверном временем
 
Вложений: 1
Подскажите как воткнуть в код в часах серверное время.
Исходник выложил.

Kikasso 19.08.2007 13:55

В этот код - никак. Он написан на стрелках.

nur 19.08.2007 14:01

чем тогда его заменить?

cwantium 19.08.2007 16:20

Как вариант:
Пишите PHP скрипт определяющий серверное время, загружаете данные полученные от этого скрипта в свой flash фильм, а уже затем (внутри flash фильма) начинаете плясать от полученных данных (например меняя значение времени каждую секунду “setInterval”)
Если успею написать, то сегодня ночью сброшу исходник такой проги (все равно часы делать придется).

Хотя скорее всего есть и другие варианты реальзации.

nur 19.08.2007 20:35

Буду примного благодарен за исходник, так как я врядли смогу такое реализовать...

Kikasso 19.08.2007 21:23

Я делал так:
1) считаем, что часы на компьютере установлены правильно. Вычисляем delta c гринвичем (getTimeZoneOffset). Получаем время, добавляем delta, раздаем его циферблатам, у каждого циферблата выставлена разница с гринвичем и флаги - переводятся ли часы летом и переводятся ли зимой, потому что в южном полушарии стрелки назад переводят зимой, а на экваторе не переводят вообще. Далее каждый циферблат смотрит, включено ли летнее время на данном циферблате, и вращает стрелки.
2) Параллельно с этим идет запрос на сервер за точным временем по гринвичу. По получении ответа корректируется delta. Если ответа нет - человек не в сети, можно проверить еще раз через какое-то время.
Точное время из php:
Код:

<?php
echo "utp=" . ( time() - date("Z") );
?>

В php есть спец функция для гринвича - gmmktime(), но она выдает совсем не то что надо.
Дни перехода на DST (летнее время) - последнее воскресенье марта и октября соответственно.
Код:

var td:Date = new Date();
td.setMonth( 2 );
td.setDate( 31 );
td.setDate( 31 - td.getDay() );
Clock.marDay  = td.getTime();
               
td.setMonth( 9 );
td.setDate( 31 );
td.setDate( 31 - td.getDay() );
Clock.octDay  = td.getTime();

Все бы ничего, но американцы переводят стрелки в другие дни, когда именно - надо смотреть.
Желаю успехов.

cwantium 21.08.2007 03:37

Вложений: 1
Пардон за задержку вчера не успел закончить «часики»:wacko: , но лучше поздно чем никогда в архиве flash исходник + PHP файл. Но будьте внимательны, часы нужно поднастроить, для этого в программе существуют 2 массива с их помощью можно полностью убрать опережение или отставания (хотя некоторое отставание убрать не получиться т.к. оно связано с задержкой на передачу данных серверным скриптом flash фильму:( , т.е. это возможно но это довольно не просто реализовать технически).
Если что нибудь будет непонятно пишите, объясню.

nur 21.08.2007 15:49

спасибо за помощь

Kikasso 21.08.2007 17:24

Почему вы решили что php не работает с utf-8?

cwantium 21.08.2007 22:03

Потому, что некорректно отображаются символы, без использования System.useCodepage = true полученные от PHP скрипта, это рас, плюс к этому, я где-то читал об этом (источник честно говоря не помню), хотя на своей правоте я не настаиваю.


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

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