| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 60
| Probleme mit setInterval
Hallo Leute, ich hab ein kleines Problem mit der setInterval-Funktion. Das Programm soll folgendermaßen laufen: Es erscheinen an einer zufälligen y-Position fünf Bälle auf dem Bildschirm. Alle sollen sich anschließend nach links bewegen. Scheint ja ziemlich einfach zu sein, aber ich will es mit einer for-Schleife machen. Funktioniert auch alles bestens, bloß bewegt die Funktion, die die Bälle bewegen soll, immer nur einen Ball statt alle. Vielleicht weiß einer von euch, was ich falsch mache (bin noch Anfänger). Nachfolgend der Quelltext: Danke schon mal im Voraus. // Funktion zur Berechnung einer Zufallszahl für die y-Position des Feindballs feindball_y_pos = function() { pos = Math.floor(Math.random() * 330) + 1; return pos; } //Funktion zur Bewegung des neu erstellten Balles //Es wird immer "neuerBall" bewegt, der in der nächsten Funktion erstellt wird bewegeBall = function() { eval(neuerBall)._x += -3; } // Diese Funktion erzeugt eine Instanz des Movieclips "feindball_mc" erstelleBall = function() { var ball = "feindball_mc"; // Es wird bei jedem Durchlauf der Schleife (unten) ein neuer Ball erstellt // Deshalb das "+i" neuerBall = "feindball_mc" + i; attachMovie(ball, neuerBall, i); eval(neuerBall)._x = 300; eval(neuerBall)._y = feindball_y_pos(); } // Beide Funktionen sollen fünf Mal ausgeführt werden, damit fünf Bälle // erscheinen, die sich alle sofort bewegen. // Beginn der Schleife for (i=1; i<=5; i++){ erstelleBall(); // Leider bezieht sich die bewegeBall-Funktion im SetInterval // immer nur auf den Ball, der zuerst erstellt wurde, obwohl "neuer Ball" // immer einen neuen Ball benennt. Der erste Ball hat nun einen Affenzahn // drauf, aber die anderen Bälle bewegen sich überhaupt nicht var ballBewegerID = setInterval(bewegeBall, 10); } // Ende der Schleife // Dient nur zur Überprüfung, ob alle Bälle erstellt wurden trace (feindball_mc0); trace (feindball_mc1); trace (feindball_mc2); trace (feindball_mc3); |
| | |
| | #2 (permalink) |
| ................ Registriert seit: Jun 2004
Beiträge: 15.890
|
Hallo! Gehe einfach mal davon aus, dass die Bewegungen später unterschiedlich schnell sein sollen. Deshab bekommt hier jeder MC seinen eigenen Intervall: PHP-Code:
__________________ ternärer Konditionaloperator +++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++ |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |