Dhtml layer reinfliegen

hi all,
ich habe hier eine funktion, die einen zuerst unsichbar geschaltenen layer von unten kommend bis zu einer position x vom oberen browser-rand fliegen lässt und den content dort stoppt:

var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;

var speed = 15;
var Y2 = 500;
var F2 = 15;

function go ()
{
In = setInterval(‚moveIn()‘, speed);
}

function moveIn()
{
showlayer();
if (ie4) {document.all.pictures.style.posTop = Y2;}
if (ns4) {document.layers[inlay].y = Y2;}
if (ns6) {document.getElementById(inlay).style.top = Y2;}
//alert(Y2);
Y2 -= 2*F2;
F2 -=1;
if (Y2 <= 270 )
{
clearInterval(In);
}
}

function hidelayer(lay)
{
if (ie4) {document.all.pictures.style.visibility = „hidden“;}
if (ns4) {document.layers[lay].visibility = „hide“;}
if (ns6) {document.getElementById(lay).style.visibility = „hidden“;}
}

function showlayer(lay)
{
if (ie4) {document.all.pictures.style.visibility = „visible“;}
if (ns4) {document.layers[lay].visibility = „show“;}
if (ns6) {document.getElementById(lay).style.visibility = „visible“;}
}

mich interessiert brenndend dieses schnippsel daraus

Y2 -= 2*F2;
F2 -=1;
if (Y2

weiss jemand warum das so
ist?? ich hab echt keine ahnung…

Zur Klärung dieser Frage hier eine kleine Wertetabelle:

i | F2 | Y2
---+----+----
0 | 15 | 500
1 | 14 | 470
2 | 13 | 442
3 | 12 | 416
4 | 11 | 392
5 | 10 | 370
6 | 9 | 350
7 | 8 | 332
8 | 7 | 316
9 | 6 | 302
10 | 5 | 290
11 | 4 | 280
12 | 3 | 272
13 | 2 | 266
14 | 1 | 262
15 | 0 | 260
16 | -1 | 260
17 | -2 | 262
18 | -3 | 266
19 | -4 | 272

Fällt Dir was auf? F2 wird nach 15 Schritten negativ. Wenn bis dahin die Abbruchbedingung noch nicht erreicht wurde, sieht’s düster aus: Du subtrahierst plötzlich einen negativen Wert von Y2, und machst es dadurch grösser.

Einleuchtend?

Thomas

hey super, da hast du allerdings recht!

danke nochmals…ich dachte mir sowas, sah aber insgesamt keine logik dahinter…

thanx