![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
как привязывать функции ко временным рамкам, допустим начальный скрипт идёт так :
как теперь сделать обработку действия например на каждую новую секунду я хочу сделать звук, чтоб он играл 1 раз, т.е. это я часы делаю, вот и весь прикол в том чтоб каждую секунду чётко играл определённый звук, далее каждую минуту (т.е. на 60-й секунде относительно часов) играл другой звук, а каждый час соответственно третий, и чтоб небыло наложения... Последний раз редактировалось iNils; 24.07.2006 в 12:55. |
|
|||||
|
запустить интервал с проверкой текущего времени, например
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);
|
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
Ну и как это должно работать ?
реально пробовал, не то, смотри смысл такой есть мувики в руте, называются: ssound msound hsound функции по срабатыванию звуков: смысл в том чтоб в секундах начиная от 1 до 59 сработал на 0-й секунде сработал только но на 0-й секунде и нулевой минуте срабатывал только т.е. тут должна быть какая-то обработка на сравнение данных - часы, минуты и секунды и что бы оно при постоянной проверке сработало только 1 раз, а не постоянно срабатывало в течении данного часа, минуты, секунды... Логически это выглядеть должно где-то так if (секунды не равны нулю) если равны обработать: if (если секунды равны нулю и минуты не равны нулю) если не прокатило тогда обработать if (если секунды равны нулю и минуты равны нулю) по идее что-то в этом роде... но проверка данных должна осуществлятся раз в секунду -------------------------- т.е. допустим я создал в руте мувик и прописал в нём первую часть скрипта: var sec_sound:Sound = new Sound();
sec_sound.attachSound("sec_sound");
if (_root.sec_time != 0) {
sec_sound.start();
}
он играет его всего 1 раз, если же событию прописать onEnterFrame функцию, он его начинает играть постоянно (циклить), остаётся решить проблему чтоб обработка события производилась только при каждой новой секунде, как это реализовать ? Последний раз редактировалось iNils; 24.07.2006 в 12:56. |
|
|||||
|
поставь вместо трэйсов свои функции..
точно секунду обеспечить нельзя и значит твои часы начнут отставать/опережать системные, поэтому проверяем чаще, а реагируем на смену часов/минут/секунд.. если этот нюанс пофиг, тогда все еще проще: |
|
|||||
|
Регистрация: Aug 2003
Сообщений: 204
|
Большое спасибо за совет, всё сработало, но был сбой на доли секунд, т.е. стрелка в начале переступала деление, потом происходил щелчек...
Вернулся к первому варианту, доработал, объединил с твоими идеями, вышла система такая: 3 мувика каждый со стрелками, 2 по 60 кадров (минуты и секунды) и 1 на 12 кадров, и они привязаны к динамикам в которых соответственно тикает электронное время, с ноликами пришлось поработать, 0 не принимало, сделал IF (X<1) и привязал все звуки и функции тупо к самим стрелкам, т.е. к кадрам в этих мувиках Ещё раз большое спасибо, на моё тварение можешь посмотреть тут: http://dj-studio.h10.ru/clock.html |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:30. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|