<html>
<head>
<script language="javascript">
var swappic = new Array();
delay=1500;
i=0;
endswap='false';
function swappict(timer)
{
i=i-0;
if (i==swappic.length) i=0;
document.pic.src='scr/'+swappic+'.gif';
q=setTimeout("swappict(timer)", delay);
i++;
if (timer<time())
{
clearTimeout(q);
endswap='true';
alert('Script mess. end at: '+time());
}
}
function time()
{
today1 = new Date();
ms = 1000;
tim=Math.round(today1.getTime()/ms);
return tim;
}
</script>
</head>
<body>
<img src="pic/l_empty.gif" name="pic" border=0 width="100" height="100">
<script language="javascript">
swappic = Array("face1","face2","face3","face2");
timer=time()+4;
[color=red]swappict(timer);[/color]
if (endswap=='true')
alert('end at: '+time());
</script>
</body>
</html>
JS двойная задержка
Исходник вот.
Код:
Вопрос: как приостановить выполнение основного скрипта или еще что-то сделать чтобы по окончании выполнения функции выполнились бы условия, которые идут ПОСЛЕ вызова функции?
"if (endswap=='true') alert('end at: '+time());"
Т.е. выполнить условия по прошествии 4-х секунд (timer=time()+4;), на время которых выполняются действия из функции "swappict(timer);".
Проблема в том, что setTimeout вызывается один раз.
Цитата: Franky
Вопрос: как приостановить выполнение основного скрипта
Ни как.
Цитата: Franky
или еще что-то сделать чтобы по окончании выполнения функции выполнились бы условия, которые идут ПОСЛЕ вызова функции?
"if (endswap=='true') alert('end at: '+time());"
Т.е. выполнить условия по прошествии 4-х секунд (timer=time()+4;), на время которых выполняются действия из функции "swappict(timer);".
Проблема в том, что setTimeout вызывается один раз.
Если нужны действия которые должны быть выполнены с отсрочкой, то пихай их в функцию и уже из setTimeout вызывай эту функцию. А притормозить действия в основном скрипте ни как нельзя и это абсолютно правильно.
См. http://forum.codenet.ru/showthread.php?t=32150
спасибо! Еще раз убедился, что поиск рулит :)