lousypoetry: Prob. mit einer while-Schleife

Beitrag lesen

Folgendes, eine While-Schleife soll über ein Timeout eine andere Fkt aufrufen. in der anderen Funktion wird die Abbruchbedingung hochgezählt, aber die Schleife zieht alles in einem rutsch durch.
var tmp=100;
var endeL=1000;

while(tmp<endeL)
     {
        window.setTimeout("rechts()",1000);
     }
function rechts()
 {
  document.getElementById('ball').style.left = startL+step+'px';
  tmp=parseInt(document.getElementById('ball').style.left);
 }
die Fkt. rechts() wird nur 1x aufgerufen (Kontrolliert mittels Alert)
Ist da irgendwo ein (Denk)Fehler?

Hab mal versucht, dass nachzuvollziehen, vielleicht liegts daran, dass die Schleife außerhalb einer Funktion steht, denn soweit ich weiß wird das Script von oben nach unten abgearbeitet, sodass die Schleife gar nicht als solche arbeitet.
Wenn man also eine Funktion draus macht, zB

function wiederholen()
 {
   while(tmp < endeL)
     {
       window.setTimeout("rechts()", 1000);
     }
 }

könnt es schon eher funktionieren. Allerdings ist mir aufgefallen, dass da eine Endlosschleife entstehen könnte:

function rechts()
 {
  document.getElementById("ball").style.left = startL+step+'px';
  tmp = parseInt(document.getElementById('ball').style.left);
 }

Beim ersten Aufruf wird tmp verändert und hat jetzt zB den Wert 200.
Die Schleife stellt fest, dass 200 kleiner als 1000 ist und rechts() wird erneut ausgeführt. Da du jedoch startL und step nicht veränderst, bleibt der Wert von "style.left" gleich, demnach ist auch tmp wieder 60 und die Schleife bricht nicht ab.

--
life's for the living. so check me tomorrow [Matthew Good Band]