Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: setTimeout в JavaScript
 
 автор: Воитель   (24.06.2008 в 17:16)   письмо автору
 
 

<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.

   
 
 автор: EXP   (24.06.2008 в 18:36)   письмо автору
 
   для: Воитель   (24.06.2008 в 17:16)
 

<div id="move" style="z-index:5;position:absolute;width:70px; height:31px"><font face="Arial" size="3" color="#993333"><b>Script</b></font></div>

<input type="text" id="bibon" value=""/>
<script language="JavaScript"> 
<!--
var i_gox=0;
var i_goy=0;
function japapilon(i_ox, i_oy) {
i_ox-=50;
i_oy-=55;
s_txt=i_ox+" "+i_oy;
var koorslx=i_ox+"px";
var koorsly=i_oy+"px";
i_gox=i_ox;
i_goy=i_oy;
polet()
}
function polet() {
i_goy+=10

i_oy=i_goy;
i_ox=i_gox;
var s_txtt=i_ox+" "+i_oy+"/"+s_txt;
document.getElementById('bibon').value = s_txtt;
if (navigator.appName == "Netscape") 
{ document.move.left = i_ox +'px'
document.move.top = i_oy +'px' } 
else { document.all.move.style.left= i_ox +'px'
document.all.move.style.top = i_oy +'px' }
if (i_ox < 0) return false;
setTimeout("japapilon("+i_ox+","+i_oy+")", 700);
}

japapilon(600, 450) // вызов функции
--> 
</script>

мутные какие-то функции , по какой траектории должно двигаться document.all.move ?

   
 
 автор: Воитель   (24.06.2008 в 19:46)   письмо автору
 
   для: EXP   (24.06.2008 в 18:36)
 

Банально по прямой. Вот только направления прямой выбирается рандомно.

   
 
 автор: Воитель   (24.06.2008 в 22:01)   письмо автору
 
   для: Воитель   (24.06.2008 в 19:46)
 

Спасибо.
После небольшой модернизации я добился того что надо было(Должна была циклица функция Polet())
Буду рад услышать в чём были ошибки. Т.к. логики я не усвоил.
И ещё один вопрос:
почему не могу поставить условие?
if (japoy < 800) return false;
Я сначала подумал что переменная числица как строковая(Я знал что это не так, но эта была единственная догатка)
Перевожу через
japoy=parseInt(japoy); //не помогает

   
 
 автор: exp   (25.06.2008 в 00:09)   письмо автору
 
   для: Воитель   (24.06.2008 в 22:01)
 

если чесно, я и сам не понял чего там не хватало )
до того как-то пользовался
function  stt(){ timer();
if (flag) {
clearInterval(flag);
 flag = null;
} else {
 flag = setInterval('timer()', 1000);
}
return 0;
}

var flag=null
stt();
тут заинтересовало двИжение .)
домучал примерно до такого
<style>
body { margin:0;}
</style>
<div id="move" style="z-index:2; position:absolute; width:70px; height:31px; background:#999;"><font face="Arial" size="3" color="#993333"><b>Script</b></font></div> 

<input type="text" id="debug" value=""/>

<script language="JavaScript">  
<!-- 
var speed = 2;

var w_h = document.body.clientHeight
var w_w = document.body.clientWidth

var o = document.getElementById('move')
var o_h = o.style.height.replace(/\D/g, ''); 
var o_w = o.style.width.replace(/\D/g, '');
// move: width & height должно быть в "px" 

w_w -= o_w;
r_h = (w_h -= o_h);
r_w = (Math.random()*w_w).toFixed() 
// r_w X r_h - случайная точка внизу
alert(r_w+':'+w_w+' '+r_h+':'+w_h)

var f = {w:0, h:0}
//alert(f.w+':'+f.h)

function polet(i_runx, i_runy) {
 speed += speed/5
 if (speed>1500) {
 o.style.display='none';
 return false;
 }
 var r_w = Math.ceil(w_w/Math.sqrt(speed))
 var r_h = Math.ceil(w_h/Math.sqrt(speed))
 
 i_y = i_runy;
 i_x = i_runx;
 
 i_runx = (f.w)? i_runx+r_w: i_runx-r_w;
 if (i_runx>w_w){ i_runx = w_w; f.w=(f.w)?0:1;}
 else if (i_runx<0){ i_runx = 0; f.w=(f.w)?0:1;}

 i_runy = (f.h)? i_runy+r_h: i_runy-r_h;
 if (i_runy>w_h){ i_runy = w_h; f.h=(f.h)?0:1;}
 else if (i_runy<0){ i_runy = 0; f.h=(f.h)?0:1;}

 document.getElementById('debug').value=i_x+"x"+i_y+"/"+i_runx+'x'+i_runy; 

o.style.left = i_runx +'px'
o.style.top = i_runy +'px'

setTimeout('polet('+i_runx+','+i_runy+')', speed);


polet(r_w, r_h); // вызов функции 
-->  
</script>

   
 
 автор: Воитель   (25.06.2008 в 09:40)   письмо автору
 
   для: exp   (25.06.2008 в 00:09)
 

Прикольно. Только наверно надобыло бы добавить плавности и времени длительности(а то не совсем успеваешь усмотреть) но я так понимаю это дело 5минут.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования