PDA

Просмотр полной версии : таймер 15 секунд


Pull_ya
02.11.2006, 18:35
Доброго времени суток.
Пытаюсь сделать 15-секундный таймер обратного отсчета, чтобы потом по истечении этих 15 секунд менялся кадр, и при этом оставшееся время отображалось в динамическом поле. написал следующий код:

sec=new Date();
timesec = sec.getSeconds();
timeleft = timesec+15;
for (j=0; j<=30; j++) {
while (timeleft-timesec==0) {
timesec = sec.getSeconds();
time = timeleft-timesec;
}
}


time - переменная динамического текстового поля. почему-то не выполняется while. подскажите, в чем тут трабл?

etc
02.11.2006, 18:38
В том, что while выполняется единовременно, как и любой другой цикл.

Pull_ya
02.11.2006, 19:00
почему единовременно? он ведь на то и while, что бы выполняться до тех пор, пока условие не будет выполняться?

etc
02.11.2006, 19:00
while аналогичен for

Pull_ya
02.11.2006, 19:30
а тогда почему вот эта штука не работает???
(этот код расположен в кадре номер 3)

sec=new Date();
timesec1 = sec.getSeconds();
trace (timesec);
time=timeleft;
if (timesec1==timesec+1) {
timeleft--;
gotoAndStop("3");
} else {
trace (timesec1);
gotoAndStop("3");
}

в первом кадре определены переменные:

sec=new Date();
timesec = sec.getSeconds();
timeleft = 15;

etc
02.11.2006, 19:58
потому что переход в этот кадр уже совершился, собственно. Второй раз перехода в него не будет.

motor4ik
02.11.2006, 20:06
var num:Number=0;

var int1 = setInterval(inter = function ():Void{
num++;
if (num==15){
clearInterval(int1);
delete int1;
delete num;
trace('ok');
//goto Куда нада )))
}
},1000);

Pull_ya
02.11.2006, 20:46
motor4ik спасибо, что направил на путь истинный, хотя, твой код тож не работает (при наличии ":Void" в поле динамического текста "time" не будет ничего выводиться). А вот эта штука у меня заработала:

num=0;
time=15;
setInterval(function (){
time="";
num++;
if (num==15) {
i++;
gotoAndStop("3");
time=15;
} else {
time=15-num;
}
},1000);


__etc, спасибо за поддержку :)

motor4ik
02.11.2006, 21:41
motor4ik спасибо, что направил на путь истинный, хотя, твой код тож не работает (при наличии ":Void" в поле динамического текста "time" не будет ничего выводиться). А вот эта штука у меня заработала:



не знаю что там у вас, но Void говорит о том что функция ничего не возвращает, у вас она ничего не возвращает, так что никакого отношения Void не имеет, и интервал нужно удалять, так как он у вас будет выполнятся и после перехода на третий кадр!