Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.06.2010, 10:59
Acxat вне форума Посмотреть профиль Отправить личное сообщение для Acxat Найти все сообщения от Acxat
  № 1  
Ответить с цитированием
Acxat
 
Аватар для Acxat

Регистрация: Oct 2009
Сообщений: 15
Question аналоговые часы с подгрузкой времени с сервера и чтоб стрелки вертелись

Помогите пожалуйста?!
Мне нужны аналоговые часы с подгрузкой времени с сервера и чтоб стрелки вертелись.

Eсть PHP файл time.php с кодом:

Код:
<?php
echo 'theTime='.urlencode(date('g:i:s A')).'&theHour='.urlencode(date('g')).'&theMinutes='.urlencode(date('i')).'&theSeconds='.urlencode(date('s')).'&amORpm='.urlencode(date('A'));
?>
Есть код для Flash:

Код AS1/AS2:
myVars = new LoadVars();
myVars.load("http://yourserver.com/time.php");
 
myVars.onLoad = function(success) {
	if (success) {
		trace("variables loaded");
		trace(this.theTime);
		trace(this.theHour);
		trace(this.theMinutes);
		trace(this.theSeconds);
		trace(this.amORpm);
	} else {
		trace("Error loading page");
	}
};
 
time = theTime();// time object
seconds = theSeconds();
minutes = theMinutes();
hours = theHour();
 
hours = hours+(minutes/60);
 
seconds = seconds*6;// calculating seconds
minutes = minutes*6;// calculating minutes
hours = hours*30;// calculating hours
 
sec._rotation = seconds;// giving rotation property
min._rotation = minutes;// giving rotation property
hour._rotation = hours;// giving rotation property
Время выводит на Output пример: 11:49:57 AM
Вот стрелки не крутятся совсем.

Заранее спасибо!


Последний раз редактировалось udaaff; 01.06.2010 в 11:14.
Старый 01.06.2010, 11:14
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Для оформления своего кода надо использовать теги [code][/code]

Старый 01.06.2010, 11:37
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну нужно же непрерывно получать данные и непрерывно их выводить.
Типа такого:
Код AS1/AS2:
setInterval (loadTime, 500);
 
function loadTime () {
	myVars.load('http://yourserver.com/time.php');
}

Видимо, в примере за кадром остались также функции theTime() и прочие.
Все действия по выводу можно писать либо отдельно также где-нибудь с помощью еще одного setInterval, а можно даже внутри loadTime.
Если что, можно поднять частоту, уменьшив интервал с 500, например до 100, правда не уверен, что такая частота запросов скрипта - хорошо с точки зрения нагрузки на сервер.

Мысль еще такая есть - может быть просто сделать один запрос на серверное время, сравнить его со временем на локальной машине пользователя и выводить время, основываясь на времени клиентской машины (с помощью getTime), но с коррекцией, основанной на сервеном времени (учесть разницу).

PS. Кстати, что значит "аналоговые"?


Последний раз редактировалось mooncar; 01.06.2010 в 13:03.
Старый 01.06.2010, 13:32
Acxat вне форума Посмотреть профиль Отправить личное сообщение для Acxat Найти все сообщения от Acxat
  № 4  
Ответить с цитированием
Acxat
 
Аватар для Acxat

Регистрация: Oct 2009
Сообщений: 15
Аналоговые часы - это часы со стрелками

Старый 01.06.2010, 13:39
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 5  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
mooncar
Загрузки 1 раз будет недостаточно ?
помогите плз в соседней теме.
__________________
Дети не должны знать о своих родителях

Старый 01.06.2010, 13:46
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если вам нужна актуальная информация о времени, то ее и получать нужно с требуемой частотой. Разве это не очевидно?

Старый 01.06.2010, 13:46
Acxat вне форума Посмотреть профиль Отправить личное сообщение для Acxat Найти все сообщения от Acxat
  № 7  
Ответить с цитированием
Acxat
 
Аватар для Acxat

Регистрация: Oct 2009
Сообщений: 15
Хотелось бы посмотреть на код полностью так как во Flash я почти полный ноль (

Старый 01.06.2010, 14:29
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от Acxat Посмотреть сообщение
Хотелось бы посмотреть на код полностью так как во Flash я почти полный ноль (
На какой код вы хотите взглянуть? Вроде вы сами написали "есть код для Flash".
Судя по нему, вам нужно нарисовать стрелки sec, min и hour, и поместить
вот этот блок в подинтервальную функцию:
Код AS1/AS2:
hours = hours+(minutes/60);
 
seconds = seconds*6;// calculating seconds
minutes = minutes*6;// calculating minutes
hours = hours*30;// calculating hours
 
sec._rotation = seconds;// giving rotation property
min._rotation = minutes;// giving rotation property
hour._rotation = hours;// giving rotation property
И еще понять, что подразумевается в приведенном вами куске кода вот здесь
Код AS1/AS2:
time = theTime();// time object
и далее... что это за функции? Они не приводятся.
Скорее всего в них осуществляется перевод полученных с сервера данных в целочисленные значения AS, которые и используются для дальнейших вычислений:

Код AS1/AS2:
myVars.onLoad = function(success) {
	if (success) {
		hours = Number(this.theHour);
		minutes = Number(this.theMinutes);
		seconds = Number(this.theSeconds);
	}
};


Последний раз редактировалось mooncar; 01.06.2010 в 14:50.
Старый 02.06.2010, 04:52
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 9  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Цитата:
Сообщение от mooncar Посмотреть сообщение
Если вам нужна актуальная информация о времени, то ее и получать нужно с требуемой частотой. Разве это не очевидно?
Ну зачем же. Достаточно получить 1 раз "базовое" время, затем остается только к нему добавлять getTimer(). Вероятностью аномального течение системного времени на компьютере пренебрегаем.

Но если нужно очень высокая точность синхронизации, то тут нужно делать несколько запросов, вычислять время задержки ответа от сервера и тд. Рядом есть тема про дату - http://www.flasher.ru/forum/showthread.php?p=912440 Задачи похожие - отсчитывать время от заданного.

Старый 02.06.2010, 10:10
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
rainbowrussia, я об этом и говорил
Цитата:
Сообщение от mooncar Посмотреть сообщение
Мысль еще такая есть - может быть просто сделать один запрос на серверное время, сравнить его со временем на локальной машине пользователя и выводить время, основываясь на времени клиентской машины (с помощью getTime), но с коррекцией, основанной на сервеном времени (учесть разницу).
А насчет актуальности - пытался просто донести мысль до автора, что один раз сделать запрос недостаточно, информацию надо обновлять - даже с помощью getTimer() или getTime() она все равно нуждается в актуализации.
У него же первое затруднение вызвало то, что информация в приведенном коде не обновляется.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
аналоговые часы + сервер

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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