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

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

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

Регистрация: Sep 2008
Сообщений: 5
Question Время с сервера

Флеш может отобразить только время клиента. Но мне нужно во флеш точное время (время на моем сервере). Создаю мувик, в нем динамическое текстовое поле. Пишу в нем as:
Цитата:
clientdate = new Date();
var stn;
var raznica = stn - clientdate.getTime()
mydate = new Date();
var correct = mydata.getTime() + raznica;
min = mydate.getMinutes(correct);
hour = mydate.getHours(correct);
if (min < 10)
{
min = "0" + min;
} // end if
if (hour < 10)
{
hour = "0" + hour;
} // end if
time = hour+" : "+min;
На странице пишу:
Цитата:
<?php
$swfvar="?stn=".mktime()*1000;
?>

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="800" height="200" id="head" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="to/head.swf<?php echo $swfvar; ?>" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="to/head.swf<?php echo $swfvar; ?>" quality="high" bgcolor="#ffffff" width="800" height="200" name="head" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Для не знающих php: о mktime() - http://ru.php.net/manual/ru/function.mktime.php (кратко - это примерно то же самое, что и getTime()). Функция echo пишет в файл. В данном случае например благодаря ней адрес к файлу бкдет выглядеть как "to/head.swf?stn=1222028792000".

Загрузил флешку и пхпшку на хост, специально сбил у себя на компе время. Но флешка всеравно показывает время клиента(меня)
Что я сделал не так? Заранее спасибо

Старый 22.09.2008, 02:18
ramshteks вне форума Посмотреть профиль Отправить личное сообщение для ramshteks Найти все сообщения от ramshteks
  № 2  
Ответить с цитированием
ramshteks
 
Аватар для ramshteks

Регистрация: Jul 2007
Сообщений: 805
Отправить сообщение для ramshteks с помощью ICQ Отправить сообщение для ramshteks с помощью Skype™
блин что тут можно сказать, наверно ты просто береш только свое врямя))
блин trace тебе в помощь, поизучай посмотри что приходит а что нет, что обрабатывается а что нет...

Старый 22.09.2008, 03:28
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А как ваш скрипт в АС связан с тем, что вы передаете из ПХП? =/ Кроме того, АС3 хоть и не строго типизированый язык, принято все-таки типизировать переменные. По крайней мере компилятор вам об этом тоже напомнит.
__________________
Hell is the possibility of sanity

Старый 22.09.2008, 11:44
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Код:
<?php
$swfvar="?stn=".mktime()*1000;
?>
Это что-то такое...
Вот так надо
Код:
<?php
//определение времени
$result_time = date("d.m.Y H:i"); 
//типа 07.09.3014 08:50 
echo 'dn_time='.$result_time; //вывод в браузер (флешка, можно и в Opera IE7 и т.д.)
?>
А флеш вот так
Код:
var txt:TextField = new TextField();
txt.text = "hello";
txt.autoSize = TextFieldAutoSize.LEFT;
addChild(txt);//добавить на рабочее поле
txt.scaleX = txt.scaleY = 4;
var url:String = "http://www.dnadillo.dn.ua/fla/dn-time.php?t="+new Date().getTime();
//?t="+new Date().getTime(); - это чтоб рнр файл не кешировался
var request:URLRequest = new URLRequest(url);

var loader:URLLoader = new URLLoader();
configureListeners(loader);
try {
	loader.load(request);
} catch (error:Error) {
	trace("Unable to load requested document.");
}

function configureListeners(dispatcher:IEventDispatcher):void {
	dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}
function completeHandler(event:Event):void {
	var loader2:URLLoader = URLLoader(event.target);
	var variables:URLVariables = new URLVariables(loader2.data);
	trace(variables.dn_time);
	txt.text='Время сайта \n http://www.dnadillo.dn.ua/\n'+variables.dn_time;
}


Последний раз редактировалось Alex Lexcuk; 22.09.2008 в 11:48.
Старый 22.09.2008, 13:48
LokiFC вне форума Посмотреть профиль Отправить личное сообщение для LokiFC Найти все сообщения от LokiFC
  № 5  
Ответить с цитированием
LokiFC

Регистрация: Sep 2008
Сообщений: 5
Ладно. Буду тогда сам доводить. trace мне в помощь
wvxvw, переменную передаю
Цитата:
В данном случае например благодаря ней адрес к файлу бкдет выглядеть как "to/head.swf?stn=1222028792000"
Alex Lexcuk, все хорошо, но только время статичное будет.

Старый 22.09.2008, 14:04
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Если вы имели в виду var stn, то ничего вы не передаете, эта переменная никак не связана с тем, что вы передали флешу.
В примере выше время не будет статичное. Но будет погрешность связаная с тем, что данные с сервера не прийдут моментально. Но избежать ее в целом вообще не получится, т.как вы не сможете получить информацию о том, сколько времени запрос добирался до сервера и обратно. Чтобы прочитать параметр переданый флешу читаем тут:
http://livedocs.adobe.com/flash/9.0/...tml#parameters
__________________
Hell is the possibility of sanity

Старый 22.09.2008, 14:50
amd333 вне форума Посмотреть профиль Отправить личное сообщение для amd333 Найти все сообщения от amd333
  № 7  
Ответить с цитированием
amd333

Регистрация: Sep 2008
Сообщений: 20
если это сильно критично то лучше использовать какие нибуть сокеты, а так ты всеравно точное время не получишь (задержка запроса, задержка загрузки флеша или еще чтонибуть)
__________________
90% проблем решаются сами собой, а 10% попросту неразрешимы

Старый 22.09.2008, 15:39
LokiFC вне форума Посмотреть профиль Отправить личное сообщение для LokiFC Найти все сообщения от LokiFC
  № 8  
Ответить с цитированием
LokiFC

Регистрация: Sep 2008
Сообщений: 5
С передачей переменных все работает. Не первый раз такой способ использую. В этом случае даже на видимом поле проверял. Насчет погрешности - не страшно, +-минута думаю тормозить не будет. Все таки именно с моим кодом можно что-нибудь сделать?
(Забыл сказать, что в as я ламер) Я тот ме совсем понимаю.
Я кстати его малесь поменял. Проблема была в том, что я перепутал синтаксис с js. В итоге:
Код:
client = new Date();
var stn = 1222028792000;
/*временно значение вставил,чтоб проверять при публикации проще было*/
help.text = client.getTime();//help - динамическое поле (тоже пока временное)

mydate = new Date();
function clock() {
	var raznica = stn - client.getTime();
	mydate.setTime(client.getTime()+raznica);
	help2.text = mydate.getTime();//help2 -тоже динамическое поле (временное)
	min = mydate.getMinutes();
	hour = mydate.getHours();
	if (min < 10)
	{
	    min = "0" + min;
	} 
	if (hour < 10)
	{
	    hour = "0" + hour;
	} // end if
	clockdisplay.text = hour+" : "+min;// собственно поле со временем
}
setInterval(clock,1000);
Все замечательно, только в поле help2(и в clockdisplay соответственно) переменные статичны и не меняются. А в help цифорки скачут. В чем проблема и как ее исправить?

Старый 22.09.2008, 17:07
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 9  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Код:
var txt:TextField = new TextField();
txt.text = "hello";
txt.autoSize = TextFieldAutoSize.LEFT;
addChild(txt);//добавить на рабочее поле
txt.scaleX = txt.scaleY = 3;
var loc_data:Date = new Date();
var break_data:Date = new Date();
var cor:uint;

var myTimer:Timer;
myTimer = new Timer(1000);
myTimer.addEventListener("timer", timerHandler);

var url:String = "http://www.dnadillo.dn.ua/fla/dn-time.php?t="+loc_data.getTime();
//?t="+new Date().getTime(); - это чтоб рнр файл не кешировался
var request:URLRequest = new URLRequest(url);

var loader:URLLoader = new URLLoader();
configureListeners(loader);
try {
	loader.load(request);
} catch (error:Error) {
	trace("Unable to load requested document.");
}

function configureListeners(dispatcher:IEventDispatcher):void {
	dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}
function completeHandler(event:Event):void {
	var loader2:URLLoader = URLLoader(event.target);
	var variables:URLVariables = new URLVariables(loader2.data);

	trace("Время Сайта "+variables.dn_time);
	trace("Время Компа "+loc_data.getTime());	
	cor = loc_data.getTime() - Number(variables.dn_time)*1000;
	
	trace(uint(break_data.hours)+":"+uint(break_data.minutes));
	myTimer.start();
}


function timerHandler(event:TimerEvent) {
break_data.setTime(loc_data.getTime() - cor);
txt.text='Время сайта \n http://www.dnadillo.dn.ua/\n'+break_data.hours+":"+break_data.minutes;
txt.text=txt.text+'\nВремя КОМПА '+loc_data.getHours()+":"+loc_data.getMinutes();
}

/*<?php
//определение времени
$result_time = time(); 
//типа 1222084214

echo 'dn_time='.$result_time; //вывод в браузер (флешка, можно и в Opera IE7 и т.д.)

?>
*/


Последний раз редактировалось Alex Lexcuk; 22.09.2008 в 17:20.
Старый 22.09.2008, 18:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
>> С передачей переменных все работает.
В том виде, в котором это у вас сейчас - в принципе не может работать в АС3. Либо вы запостили не в тот раздел (нужно было в АС2), либо, запостили не тот код.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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