TheInsomnius: Schleife abbrechen

Hallo Forum,
ich hab ein Script, das ein Object in einer Schleife langsam einblendet. Dies ist nur leider eine Endlosschleife, da der Aufruf der Funktion nicht zu stoppen scheint.

function spielover()
{
A = document.all.down.filters[0].opacity
if(A <= 100)
{
document.all.down.filters[0].opacity = (document.all.down.filters[0].opacity += 10);
document.all.down.filters[0].finishopacity = (document.all.down.filters[0].finishopacity += 10);
window.setTimeout("spielover()",200);
}
else
{}
}

spielover();

Nun müsste ich diese Schleife stoppen und nur bei mouseover leufen lassen, denn bei mouseout startet eine schleife mit der entgegengesetzten Funktion. Das Objekt wird ausgeblendet. Zur Zeit heben sich die beiden Funktionen aber gegenseitig auf.

Kann ich irgendwie denn neuen Funktionsstart in die Funktion stecken? Als ich das gemacht habe, bekam das objekt dann nach ablauf der Zeit schlagartig, gefolgt von einem Stack Overflow.

Ich danke für eure Hilfe

TheInsomnius

  1. Hi TheInsomnius

    versuche mal:

    aktiv=window.setTimeout("spielover()",200);

    Nun müsste ich diese Schleife stoppen und nur bei mouseover

    zum stoppen: window.clearTimeout(aktiv)

    leufen lassen, denn bei mouseout startet eine schleife mit der entgegengesetzten Funktion. Das Objekt wird ausgeblendet. Zur Zeit heben sich die beiden Funktionen aber gegenseitig auf.

    Kann ich irgendwie denn neuen Funktionsstart in die Funktion stecken?

    Versuche mal: onmouseouver="spielover();" onmouseot="stopspielover();"

    Alternativ, packe alles in eine Funktion und wechsele nur die Richtung. Die Richtung kannst du ja dann mit + und - setzen.

    Viele Grüße

    Antje

    1. Ich probier es mal aus, 1000  dank erstmal...

  2. hi,

    bau Dir doch eine Art "Schalter". Z. B. setzt onmouseover zunaechst eine globale variable: var schalter=1;
    Bei Deiner Funktion baust Du dann eine if Abfrage ein:
    if(schalter==1 && A <= 100){tu_was;setTimeout("tu_es_nochmal()",50);}

    Gruesse Joachim