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, время: 20:48. |