home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1999 September
/
Chip_1999-09_cd.bin
/
internet
/
JSLib
/
applets
/
0117
/
StarsRound.js
< prev
Wrap
Text File
|
1999-04-24
|
3KB
|
115 lines
var pf;
if (ie) pf = star0.style;
else pf = document.layers["star0"];
var W,H;
var sL=0, sT=0;
var divW = 47 + 2, divH = 46 + 3; //divW = parseInt(pf.width) + 2; divH; = parseInt(pf.height) + 3;
var X=-1, Y=-1;
var f;
function buffer(n) {
for (var i = 1; i <= n; i++) {
this[i] = -100;
}
return this; }
var bufa;
var bufp = 0;
var bufc = 3;
var bufd = -1;
var bufmax = 50; //bufc*pocet hvezd musi < velikost buff
var bufX = new buffer(bufmax);
var bufY = new buffer(bufmax);
var sx, sy;
var ra;
var r;
var t;
var sp = 4;
var rap = sp/r;
var maxr = 200;
var PI2 = Math.PI*2;
var rnd;
function isin() {
return ( (X>=0) && (X<=W-divW) && (Y>=0) && (Y<=H-divH) );
}
function circleBox() {
sL = parseInt(ie ? document.body.scrollLeft : pageXOffset);
sT = parseInt(ie ? document.body.scrollTop : pageYOffset);
if (!ie) {
W=innerWidth;
H=innerHeight;
}
X = sx + r*Math.cos(ra);
Y = sy + r*Math.sin(ra);
if (!isin()) {
rap = -rap;
ra += 2*rap;
X = sx + r*Math.cos(ra);
Y = sy + r*Math.sin(ra);
}
if (!isin()) resize();
t -= Math.abs(rap);
if (t<0) {
rnd = maxr/2 - (Math.random()*maxr);
if ((rnd>-10) && (rnd<10)) rnd = 10;
sx = X - Math.cos(ra)*rnd;
sy = Y - Math.sin(ra)*rnd;
r = Math.abs(rnd);
if (rnd<0) {
if (ra < Math.PI) ra+=Math.PI;
else ra-=Math.PI;
if (rap<0) rap = sp/r; else rap = -sp/r;
//rap = Math.random()*10 + 10;
} else if (rap<0) rap = -sp/r; else rap = sp/r;
rap = rap*(Math.random()*3+2)
t=Math.random()*(Math.PI/2);
}
ra += rap;
while (ra>PI2) ra -= PI2;
while (ra<PI2) ra += PI2;
pf.left = (X + sL); //+3*Math.random());
pf.top = (Y + sT); //+3*Math.random());
bufX[bufp] = (X + sL);
bufY[bufp] = (Y + sT);
bufp++;
if (bufp>bufmax) bufp = 0;
for (f=1; f<5; f++) {
bufa = bufp - 1 - (bufc*f);
if (bufa<0) bufa += bufmax + 1;
if ( (bufX[bufa]>sL+W-divW) || (bufY[bufa]>sT+H-divH) )
for (g=0; g<bufc; g++) {
bufX[bufa-g<0?bufa-g+bufmax+1:bufa-g]=-100;
bufY[bufa-g<0?bufa-g+bufmax+1:bufa-g]=-100;
}
if (ie) {
eval('star'+f+'.style.left=bufX[bufa] + (f*5)');
eval('star'+f+'.style.top=bufY[bufa] + (f*5)');
} else {
eval('window.document.layers["star'+f+'"].left=bufX[bufa] + (f*5)');
eval('window.document.layers["star'+f+'"].top=bufY[bufa] + (f*5)');
}
}
setTimeout((ie ? 'circleBox();' : circleBox),20);
}
function resize() {
W = ie ? document.body.clientWidth : innerWidth;
H = ie ? document.body.clientHeight : innerHeight;
if (!isin()) {
sx=W/2; sy=H/2;
r=Math.random()*(W<H?sx:sy);
if (r<10) r=10;
ra=Math.random()*PI2;
rap = sp/r;
rap = rap*(Math.random()*3+2)
t=Math.random()*PI2;
}
}
function start() {
if (ie) window.onresize = resize;
resize();
circleBox();
}