Просмотр полной версии : часы - время сервера
cerberus_nsv
09.07.2009, 20:32
Приветствую всех! т.к. я тут впервые!
Люди, помогите пожалуйста! я раньше флэшем не занимался, но вот пришлось осваивать... есть проблема, нашёл урок, сделал всё по нему... часы работают, но время берётся с компа... а задача состоит в том, что время должно браться с сервака, да ещё прибавлять 10 часов вперёд... это всё я сделал!!! но опять же, время берётся с компа...
порыскав во форумам я нашёл, что можно это осуществить с помощью php...
выкладываю код! не могу понять, почему не работают часы! буду признателен, если кто поможет разобраться!!!
loadVariables("../scriptTime.php");
time=Date();
var seconds = time.myhour;
var minutes = time.mymin;
var hours = time.mysec;
while(hours >12)
{
hours = hours - 12;
}
hours1 = hours + 10;
while(hours1 >12)
{
hours1 = hours1 - 12;
}
if (hours1<12)
{
ampm = "AM";
}
else
{
ampm = "PM";
}
if(hours1<10)
{
hours = "0" + hours;
}
if(minutes<10)
{
minutes = "0" + minutes;
}
if(seconds<10)
{
seconds = "0" + seconds;
}
clock_txt.text = hours1 + ":" + minutes + ":" + seconds +" "+ ampm;
<?php
echo "myhour=".date("H")."
&mymin=".date("i")."
&mysec=".date("s");
?>
Заранее спасибо за помощь!
iflamberg
09.07.2009, 20:49
ну и что вы тут делаете?
сначала забираете данные loadVariables("../scriptTime.php");
а потом эти данные нигде не используете, зато запрашиваете локальное время time=Date();
и работаете с ним
cerberus_nsv
09.07.2009, 22:03
понял, что не прав! :)
но хорошо, я убираю вызов функции локального времени и присваиваю переменным, переменные, которые у меня в пхп... ничё не пашет всё равно!
dmitriev
09.07.2009, 22:45
Я так понимаю, данные то не мгновенно загружаются, должно использовать событие onLoad и после него уже "включать" часы. Я признаться loadVariavles никогда не пользовался, но вот могу сказать вот что - пример из helpa
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean) {
if (success) {
result_ta.text = result_lv.welcomeMessage;
} else {
result_ta.text = "Error connecting to server.";
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.name = name_ti.text;
send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);
тут как раз продемонстрировано использование события onLoad.
Вот по его наступлению "запускайте" свои часы.
Задержку, "ping" не учитываете =) А ну, как лаганет Ваш сервак минут на дцать?
cerberus_nsv
10.07.2009, 00:55
Тенкс!!! вот я использовал функцию onLoad, вроде правильно! :)
var time:LoadVars = new LoadVars();
time.load("scriptTime.php", this);
time.onLoad=function() {
hours=this.myhour;
minutes=this.mymin;
seconds=this.mysec;
trace(hours);
trace(mymin);
trace(mysec);
}
trace не выводит мне никаких результатов! пишит на всё undefined !!!
Вроде все пральна.
На всяк случай хендлер поставьте повыше вызова загрузки.
И тут еще, но не существенно:
load (LoadVars.load method)
public load(url: String) : Boolean
Но в Вашем коде есть второй аргумент
time.load("scriptTime.php", this);
cerberus_nsv
10.07.2009, 01:46
неа =( та же самая история... не определяет...
как флешку запускаешь?Пропиши полный путь до PHP.
Либо сервер криво отдает, либо флеш криво получает. onLoad срабатывает - политики безопасности работают.
cerberus_nsv
10.07.2009, 14:05
в общем выставлю ещё раз код полный который есть на данный момент...
var time:LoadVars = new LoadVars();
time.load("scriptTime.php", this);
time.onLoad=function()
{
var hours = this.myhour;
var minutes = this.mymin;
var seconds = this.mysec;
}
while(hours >12)
{
hours = hours - 12;
}
hours1 = hours + 10;
while(hours1 >12)
{
hours1 = hours1 - 12;
}
if (hours1<12)
{
ampm = "AM";
}
else
{
ampm = "PM";
}
if(hours1<10)
{
hours = "0" + hours;
}
if(minutes<10)
{
minutes = "0" + minutes;
}
if(seconds<10)
{
seconds = "0" + seconds;
}
clock_txt.text = hours1 + ":" + minutes + ":" + seconds +" "+ ampm;
<?php
echo "myhour=".date("H");
echo "mymin=".date("i");
echo "mysec=".date("s");
?>
скрипт находится в той же папке, что и файл флэша...
то что получается в итоге можно увидеть на http://uaps.ae/
есть вопрос, т.к. флэш постоянно запрашивает данные у скрипта, а скрипт, медленно работает на серваке... от этого могут быть проблемы, что не определяет...
dmitriev
10.07.2009, 14:51
Ну ёк-макарёк, вы onLoad то и не используете вовсе.
Попробуйте так:
var myLoadVars:LoadVars = new LoadVars();
myLoadVars.onLoad = function()
{
initClock(this.myhour, this.mymin, this.mysec);
}
function initClock(hours, minutes, seconds):Void {
while(hours > 12) {
hours = hours - 12;
}
var hours1 = hours + 10;
while(hours1 > 12) {
hours1 = hours1 - 12;
}
if(hours1 < 12) {
ampm = "AM";
} else {
ampm = "PM";
}
if(hours1<10) {
hours = "0" + hours;
}
if(minutes<10) {
minutes = "0" + minutes;
}
if(seconds<10) {
seconds = "0" + seconds;
}
clock_txt.text = hours1 + ":" + minutes + ":" + seconds +" "+ ampm;
}
myLoadVars.load("scriptTime.php", this);
cerberus_nsv
10.07.2009, 15:30
Спасибо!!!
я перезалил код... ничего... результат конечно есть! но показывает далеко не то что надо! ощущение такое, что показывает только пхп-ный скрипт через флэш... при чём, отображает его не правильно!
dmitriev
10.07.2009, 16:16
У вас какая то чушь написано с часами, вы то прибовляете 12, то отнимаете, то используете while, то if, я даже туда не смотрел, потому что вроде сложностей не должно возникнуть.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.