Показать сообщение отдельно
Старый 06.11.2007, 15:12
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 11  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Как по мне - код вобще бессмысленен. Всмысле - сплошная ошибка.

Если просто вывести текущее время на сервере:

Код:
var tf=_root.createTextField("tf",_root.getNextHighestDepth(),10,10,300,20);
var my_lv:LoadVars=new LoadVars();
my_lv.load("myscript.php");
my_lv.onLoad=function(success){
	if(success){
		tf.text=dd(this.myhour)+":"+dd(this.mymin)+":"+dd(this.mysec);
	}else{
		tf.text="Не удается загрузить время с сервера.";
	}
}
function dd(n){
	return (n<10)?"0"+n:n;
}
Если нужно обновлять показания часов, можно просто синхронизировать время от времени с сервером, поставив интервал
Код:
setInterval(my_lv,"load",1000);
Но это будет жрать лишний трафик и вобще - тупо =)

Поэтому меняем код до такого:

Код:
var dms:Number;
var tf=_root.createTextField("tf",_root.getNextHighestDepth(),10,10,300,20);
var my_lv:LoadVars=new LoadVars();
my_lv.load("myscript.php");
my_lv.onLoad=function(success){
	if(success){
		var mydate=new Date(0,0,0,this.myhour,this.mymin,this.mysec);
		var localdate=new Date;
		dms=mydate.getTime()-localdate.getTime();
		updateDate();
		setInterval(updateDate,1000);
	}else{
		tf.text="Не удается загрузить время с сервера.";
	}
}
function dd(n){
	return (n<10)?"0"+n:n;
}
function updateDate(){
	var localdate=new Date();
	localdate=new Date(localdate.getTime()+dms);
	tf.text=dd(localdate.getHours())+":"+dd(localdate.getMinutes())+":"+dd(localdate.getSeconds());
}
Что будет обновлять показания таймера раз в секунду, в зависимости от того - какое время вернул пхп скрипт.