PDA

Просмотр полной версии : Работа с таймером


Даня
25.11.2006, 21:35
function Phisic() { // конструктор моего класса
timer = new Date(0,0,0,0,0,0);
}
function resetTime() { //сброс счётчика времени
timer.setMinutes(0);
timer.setSeconds(0);
}
function get time() { //получение величины время
return timer.getMinutes()*60 + timer.getSeconds();
}


Ребят, что не так? Просто первый раз с классом Date имею дело. Проблема в том, что время(количество секунд) не отсчитывает, т.е. всегда 0.

iNils
25.11.2006, 21:47
Надо брать разницу между текущим временем и стартовым, поэтому в параметрах конструктора писать 0, 0, 0, 0, 0, 0 не нужно.

Даня
25.11.2006, 21:57
ОК, спасибо. Я правда с начала так и подумал, но потом полистал справочник и наткнулся на .setMinutes и .setSeconds, я так понял, что они для установки своего текущего времени. Вот я и сбрасываю его в 0 чтобы счётчик отсчитывал от него: для удобства.

iNils
25.11.2006, 22:08
Небольшой пример
function d () {
d1 = new Date ();
}
function reset () {
d ();
}
function getTime () {
return (new Date ().setTime (new Date ().getTime () - d1.getTime ()));
}
cx = 0;
d ();
setInterval(function () {
cx++;
if (cx == 5) {
cx = 0;
reset ();
}
trace (getTime ());
}, 1000);

Даня
25.11.2006, 23:45
Классно. Спасибо Вам. Конечно, должен признать, что Flash как то кривовато с Date обошлась... я думал всё глупее и проще.

iNils
25.11.2006, 23:56
Почему же криво? А представте что вам нужно хранить какую либо дату, например о каком то событии. Вы создаетет экземпляр Date, который у вас начинает меняется, согласно прошедшему времени. И что вам тогда делать?

etc
25.11.2006, 23:56
Это стандарт вообще-то :)

Даня
26.11.2006, 21:36
ну да... просто, видимо, я требую кривых вещей)
но я сделал вашим способом - работает)