PDA

View Full Version : Adding timer to a script



fiur
02-09-2007, 03:40 AM
can someone plz help me with this... how do I add a timer who can stop this after xx seconds....??

<script language="JavaScript1.2">

//Flying planes - by John Ely
//Modified from: Autumn leaves script- by Kurt Grigg (kurt.grigg@virgin.net)
//Modified by Dynamic Drive for NS6 functionality
//visit http://www.dynamicdrive.com for this script

//Pre-load your image below!
//CHANGE 5 to the number of images listed below
grphcs=new Array(8)
//PRELOAD the involved images (extend or contract variables according to # of images used)
Image0=new Image();
Image0.src=grphcs[0]="kaspar.gif"
Image1=new Image();
Image1.src=grphcs[1]="orson.gif"
Image2=new Image();
Image2.src=grphcs[2]="raven.gif"
Image3=new Image();
Image3.src=grphcs[3]="zoltan.gif"
Image4=new Image();
Image4.src=grphcs[4]="lucretia.gif"
Image5=new Image();
Image5.src=grphcs[5]="naadir.gif"
Image6=new Image();
Image6.src=grphcs[6]="deirdre1.gif"
Image7=new Image();
Image7.src=grphcs[7]="vladimir.gif"

//SPECIFY number of images to randomly display concurrently from list above. Less the more efficient
Amount=8;
Ypos=new Array();
Xpos=new Array();
Speed=new Array();
Step=new Array();
Cstep=new Array();
ns=(document.layers)?1:0;
ns6=(document.getElementById&&!document.all)?1:0;
ie=document.all

if (ns){
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0><img src="+rndPic+"></LAYER>");
}
}
else{
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write('<img id="si'+i+'" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
}
document.write('</div></div>');
}
WinHeight=(ns||ns6)?window.innerHeight-70:window.document.body.clientHeight;
WinWidth=(ns||ns6)?window.innerWidth:window.document.body.clientWidth;
for (i=0; i < Amount; i++){
Ypos[i] = Math.round(Math.random()*WinHeight);
Xpos[i] = Math.round(Math.random()*WinWidth);
Speed[i]= Math.random()*5+1;
Cstep[i]=0;
Step[i]=Math.random()*0.1+0.05;
}
function fly(){
var WinHeight=(ns||ns6)?window.innerHeight:window.document.body.clientHeight;
var WinWidth=(ns||ns6)?window.innerWidth-70:window.document.body.clientWidth;
var hscrll=(ns||ns6)?window.pageYOffset:document.body.scrollTop;
var wscrll=(ns||ns6)?window.pageXOffset:document.body.scrollLeft;
for (i=0; i < Amount; i++){
sy = Speed[i]*Math.sin(Cstep[i]);
sx = Speed[i]*2;
Ypos[i]+=sy;
Xpos[i]+=sx;
if (Xpos[i] > WinWidth){
Ypos[i]=Math.round(Math.random()*WinHeight);
Xpos[i]=-60;
Speed[i]=Math.random()*5+1;
}

if (ns){
document.layers['sn'+i].left=Xpos[i]+wscrll;
document.layers['sn'+i].top=Ypos[i];
}

else if (ns6){
document.getElementById("si"+i).style.left=Xpos[i]+wscrll;
document.getElementById("si"+i).style.top=Math.min(WinHeight,Ypos[i]);
}

else{
eval("document.all.si"+i).style.left=Xpos[i]+wscrll;
eval("document.all.si"+i).style.top=Ypos[i];
}
Cstep[i]+=Step[i];
}
setTimeout('fly()',20);
}

if (ie||ns||ns6)
window.onload=fly
//-->
</script>

jscheuer1
02-09-2007, 05:03 AM
Get rid of this:


setTimeout('fly()',20);

Change this by adding the red part:


document.write('<div id="flyers" style="position:absolute;top:0px;left:0px"><div style="position:relative">')

Change this:


if (ie||ns||ns6)
window.onload=fly

to:


function kill_flyers(){
var tf=document.all? document.all['flyers'] : document.getElementById('flyers');
tf.style.display='none';
}
if (ie||ns6)
window.onload=function(){
window.flying=setInterval("fly()",20);
setTimeout("clearInterval(window.flying);kill_flyers()",5000);
};

The red 5000 represents 5 seconds - the length of time until the effect stops.

fiur
02-09-2007, 05:12 AM
thanx alot!!!!