Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Цифровые часы - помогите разобраться с кодом (http://www.flasher.ru/forum/showthread.php?t=61014)

belyakov.com 23.07.2004 04:49

Цифровые часы - помогите разобраться с кодом
 
Вложений: 1
Добрый день,

Мне нужно сделать индикатор времени на сервере на flash.
Немного порывшись в форуме нашел кусок подходящего кода.
Теперь вот парюсь с ним уже 4 часа не могу никак врубится что к чему. Помогите, пожалуйста, разобраться.

Заранее большое спасибо всем.

Код:

if(sec!=true)
        {
        //Здесь будут подсасываться переменные из PHP
        sec=55;
        min=12;
        hour=24;
        }
timer=getTimer(); //Берем таймер
sec = (Math.round(timer/1000)+sec)%60; // прибавляем текущее значение в секундах %60
sec<10 ? sec="0"+sec : sec; // если секунд < 10 - прицепляем ноль в начале
sec==00 ? min=min+1 : min; // если секунд 00 - увеличиваем min на 1
min = (min)%60; // соотвественно с минутами поступаем
min<10 ? "0"+min : min;
min==00 ? hour++ : hour;
hour = (hour)%24;

//Дальше вывод
div=":";
time=hour+div+min+div+sec;        // вывод в текстовое поле


kazakov_gin 23.07.2004 10:19

А ты время с сервера то берёшь?
Замени
Код:

if(sec!=true)  {
//Здесь будут подсасываться переменные из PHP
sec=55;
min=12;
hour=24;
}

на
Код:

php=new LoadVars();
php.sendAndLoad("timer.php", php, "GET");
php.onLoad = function(success) {
if (success) {
sec=php.sec
min=php.min
hour=php.hour
}
};

А в timer.php:
Код:

<?php
echo "&sec=".date("s")."&min=".date("i")."&hour=".date("H");
?>


belyakov.com 23.07.2004 14:23

Цитата:

Оригинал написал(а) kazakov_gin
А ты время с сервера то берёшь?
Замени
Код:

if(sec!=true)  {
//Здесь будут подсасываться переменные из PHP
sec=55;
min=12;
hour=24;
}

на
Код:

php=new LoadVars();
php.sendAndLoad("timer.php", php, "GET");
php.onLoad = function(success) {
if (success) {
sec=php.sec
min=php.min
hour=php.hour
}
};

А в timer.php:
Код:

<?php
echo "&sec=".date("s")."&min=".date("i")."&hour=".date("H");
?>


Как раз с получением переменных из PHP проблем никаких нет.
Именно поэтому я не стал загромождать свой кусок кода LoadVars и прочей фигней - а просто задал их руками. Там в комментарии написано - что здесь переменные будут подсасываться из PHP. Я имел ввиду именно так, как ты написал.

Проблема - то в другом. А именно в ActionScript-таймере, который как-то странно у меня работает.

belyakov.com 26.07.2004 15:44

Ну и чё?
 
Ну и чё никто не знает?
Или я лох?
Или никто часы не делал никогда?
Или в Экшнскрипт 2.0 запостить нужно было?

Помогите! Товарищи!

mishinaelle 26.07.2004 17:37

слушай, а что ты хочешь получить в итоге?
чтобы твой клип один раз, в самом начале, брал серверное время, а потом внутри себя уже менял значение таймера?

если да - то енто надо по другому реализовать, не так как у тебя. если да - свистни - скину правильный код :)

belyakov.com 01.08.2004 17:10

Как надо?
 
Почему как у меня нельзя?

kazakov_gin 01.08.2004 18:24

Думаю, можно по всякому.
Просто никого не прикалывает просматривать кучи чужого кода в поисках ошибки или возможной неполадки.

belyakov.com 01.08.2004 18:43

Цитата:

Оригинал написал(а) kazakov_gin
Думаю, можно по всякому.
Просто никого не прикалывает просматривать кучи чужого кода в поисках ошибки или возможной неполадки.

точняк, приятель.

silin 01.08.2004 19:20

во первых ты плюсуешь getTimer() к текущим секундам( а надо бы к стартовым)
во вторых там непонятка возникает из-за второго кадра в мувике
я бы так сделал (убрав второй кадр):
Код:

sec=sec0=55;
min=12;
hour=24;

this.onEnterFrame=function(){
        nexts=(Math.floor(getTimer()/1000)+sec0)%60
        if(nexts!=sec) {
                sec=nexts;
                if(sec==0) {min++;min %=60}
                if(min==0) {hour++;hour %=24;}
                div=":";
                time=hour+div+(min<10 ? "0"+min : min) +div+(sec<10 ? "0"+sec : sec);       
        }
}


belyakov.com 02.08.2004 18:28

Всем спасибо.
 
Большое вам спасибо, mishinaelle, silin и kazakov_gin.

mishinaelle и silin - ваши коды замечательно работуют. mishinaelle - тема с OnEnterFrame очень правильная и умная.

P.S. почему-то при использовании функции LoadVariables () ;
Часы и минуты грузятся нормально, а секунды нет. Помог код от kazakov_gin, за что ему отдельная благодарность.

Почему не сработала LoadVariables () ; для меня до сих пор загадка. Если у кого-нибудь будут мысли на эту тему - буду рад...

Еще раз всем спасибо - вы круты.


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

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