Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.06.2008, 15:48
Интересующийся
Отправить личное сообщение для Воитель Посмотреть профиль Найти все сообщения от Воитель
 
Регистрация: 24.06.2008
Сообщений: 26

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.
Ответить с цитированием
  #2 (permalink)  
Старый 24.06.2008, 20:42
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

У вас polet локальная функция внутри контекста japapilon.
К моменту срабатывания таймера её уже нет, тем более в качестве глобальной polet(), которую этот таймер ищет.
Воспользуйтесь:
setTimeout(arguments.callee, 20);
arguments.callee - указание внутри функции на саму себя
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2008, 22:05
Гость
 
Сообщений: n/a

Ух ты!!!
Интересный вариант, очень грамотный. спасибо.
Но я вроде добился нужного, более топорным способом.
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2008, 09:47
Интересующийся
Отправить личное сообщение для Воитель Посмотреть профиль Найти все сообщения от Воитель
 
Регистрация: 24.06.2008
Сообщений: 26

arguments.callee
Будет работать во всех браузерах?
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2008, 10:43
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

да,должно
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2009, 10:36
asdffdsa
 
Сообщений: n/a

милый пример!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Еще один вопрос по setTimeout setInterval Хранитель Света Общие вопросы Javascript 5 12.03.2009 22:37
Использование метода setTimeout News Общие вопросы Javascript 3 18.09.2008 20:37
Очень простой как даже по мне вопрос по поводу setTimeout & setInterval Хранитель Света Общие вопросы Javascript 5 12.07.2008 20:34
Как сделать бегущую строку? Forgott Общие вопросы Javascript 12 12.05.2008 09:19
setTimeout object Общие вопросы Javascript 0 12.04.2008 05:26