Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Работа со временем (http://www.flasher.ru/forum/showthread.php?t=82910)

DJ_Baton 24.07.2006 01:59

Работа со временем
 
как привязывать функции ко временным рамкам, допустим начальный скрипт идёт так :

Код:

time = new Date();
sec_time = time.getSeconds();
time_m = time.getMinutes();
time_th = time.getHours();

как теперь сделать обработку действия например на каждую новую секунду я хочу сделать звук, чтоб он играл 1 раз, т.е. это я часы делаю, вот и весь прикол в том чтоб каждую секунду чётко играл определённый звук, далее каждую минуту (т.е. на 60-й секунде относительно часов) играл другой звук, а каждый час соответственно третий, и чтоб небыло наложения...

silin 24.07.2006 09:37

запустить интервал с проверкой текущего времени, например
Код:

time = new Date();
time_s = time.getSeconds();
time_m = time.getMinutes();
time_h = time.getHours();
function playSound(){
        var currentTime=new Date();
        var curr_h=currentTime.getHours(),curr_m=currentTime.getMinutes(),curr_s=currentTime.getSeconds();
        if (curr_h!=time_h){
                trace("H");//играем 'часовой' звук
                time_h=curr_h;
                time_m=curr_m;
                time_s=curr_s;
                return;
        }
        if(curr_m!=time_m){
                trace("M");//играем 'минутовый' звук
                time_m=curr_m;
                time_s=curr_s;
                return;
        }
        if(curr_s!=time_s){
                trace("S:"+curr_s);
                time_s=curr_s;
        }
}
setInterval(playSound,50);


DJ_Baton 24.07.2006 09:58

Ну и как это должно работать ?
реально пробовал, не то, смотри смысл такой есть мувики в руте, называются:
ssound
msound
hsound
функции по срабатыванию звуков:
Код:

_root.ssound.play();
_root.msound.play();
_root.hsound.play();

смысл в том чтоб в секундах начиная от 1 до 59 сработал
Код:

_root.ssound.play();
на 0-й секунде сработал только
Код:

_root.msound.play();
но на 0-й секунде и нулевой минуте срабатывал только
Код:

_root.hsound.play();
т.е. тут должна быть какая-то обработка на сравнение данных - часы, минуты и секунды и что бы оно при постоянной проверке сработало только 1 раз, а не постоянно срабатывало в течении данного часа, минуты, секунды...

Логически это выглядеть должно где-то так
if (секунды не равны нулю)
если равны обработать:
if (если секунды равны нулю и минуты не равны нулю)
если не прокатило тогда обработать
if (если секунды равны нулю и минуты равны нулю)
по идее что-то в этом роде...
но проверка данных должна осуществлятся раз в секунду

--------------------------

т.е. допустим я создал в руте мувик и прописал в нём первую часть скрипта:

Код:

var sec_sound:Sound = new Sound();
sec_sound.attachSound("sec_sound");
if (_root.sec_time != 0) {
        sec_sound.start();
}

он аттачит мой звук и соответственно 1 раз его проигрывает, НО! выходит следущее:
он играет его всего 1 раз, если же событию прописать onEnterFrame функцию, он его начинает играть постоянно (циклить), остаётся решить проблему чтоб обработка события производилась только при каждой новой секунде, как это реализовать ?

silin 24.07.2006 10:33

поставь вместо трэйсов свои функции..
точно секунду обеспечить нельзя и значит твои часы начнут отставать/опережать системные, поэтому проверяем чаще, а реагируем на смену часов/минут/секунд..
если этот нюанс пофиг, тогда все еще проще:
Код:

var s=0;
function playSound(){
        s++;
        if(!(s%3600)){
                trace("час");
                return;
        }
        if(!(s%60)){
                trace("минута")
                return;
        }
        trace("секунда");
       
}
setInterval(playSound,1000);


DJ_Baton 26.07.2006 22:04

Большое спасибо за совет, всё сработало, но был сбой на доли секунд, т.е. стрелка в начале переступала деление, потом происходил щелчек...
Вернулся к первому варианту, доработал, объединил с твоими идеями, вышла система такая:

3 мувика каждый со стрелками, 2 по 60 кадров (минуты и секунды) и 1 на 12 кадров, и они привязаны к динамикам в которых соответственно тикает электронное время, с ноликами пришлось поработать, 0 не принимало, сделал IF (X<1) и привязал все звуки и функции тупо к самим стрелкам, т.е. к кадрам в этих мувиках
Ещё раз большое спасибо, на моё тварение можешь посмотреть тут:
http://dj-studio.h10.ru/clock.html


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

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