setTimeout
<script language="JavaScript">
<!--
var gjapox=0;
var gjapoy=0;
function japapilon(japox, japoy) {
japox=japox-50;
japoy=japoy-50;
var tekst=japox+" "+japoy;
var koorslx=japox+"px";
var koorsly=japoy+"px";
gjapox=japox;
gjapoy=japoy;
polet();
}
function polet() {
gjapoy+=10
japoy=gjapoy;
japox=gjapox;
var tekstt=japox+" "+japoy+"/"+tekst;
document.getElementById('bibon').value = tekstt;
if (navigator.appName == "Netscape")
{ document.move.left = japox
document.move.top = japoy }
else { document.all.move.style.left= japox
document.all.move.style.top = japoy }
window.setTimeout("polet()", 20);
}
-->
</script>
Тут в function japapilon(japox, japoy) переменные приходят из флэшки. И функция запускается походу по приходу переменных. Народ помогите. Никак не запускается polet() повторно через setTimeout Я пробовал и через функции передавать параметрами. И весь инет облазил. Вроде всё подробно написано, но я не понимаю И в Dronov.HTML.JavaScript читал про функции и переменные. Код
<html>
<head>
<title>Преремещающиеся слова.</title>
<script language="JavaScript">
<!--
var rad = 50;
var xoff = 350;
var yoff = 180;
var pi = Math.PI;
var inc = pi / 36;
var pos=0;
function move() {
pos += inc;
obj1.left = xoff+4;
obj1.top = (rad* Math.sin(pos)) + yoff;
obj3.left = xoff;
obj3.top = yoff;
setTimeout("move()", 1);
}
-->
</script>
</head>
<body>
<div id="obj1" style="z-index:5;position:absolute;width:70px; height:31px"><font face="Arial" size="3" color="#993333"><b>Script</b></font></div>
<div id="obj3" style="z-index:7;position:absolute;width:89px; height:18px;clip:rect(0px 89px 18px 0px); layer-background-color:#99bb99;"><font face="Arial" size="3" color="#FF8000"><b><center>Java</center></b></font></div>
<script language="JavaScript">
<!--
var NN = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4);
var obj1 = (NN) ? document.obj1 : document.all.obj1.style;
var obj3 = (NN) ? document.obj3 : document.all.obj3.style;
move();
-->
</script>
<form name="form1" method="post" action="">
<textarea name="bibon" id="bibon"></textarea>
</form>
</body>
</html>
-это рабочий код, тоже с применением setTimeout. |
У вас polet локальная функция внутри контекста japapilon.
К моменту срабатывания таймера её уже нет, тем более в качестве глобальной polet(), которую этот таймер ищет. Воспользуйтесь: setTimeout(arguments.callee, 20); arguments.callee - указание внутри функции на саму себя |
Ух ты!!!
Интересный вариант, очень грамотный. спасибо. Но я вроде добился нужного, более топорным способом. |
arguments.callee
Будет работать во всех браузерах? |
да,должно
|
милый пример!
|
| Часовой пояс GMT +3, время: 12:51. |