Wie kann ich setInterval und clearInterval innerhalb des Prototypen einbinden? Meine Lösung klappt nicht. Fehlermeldung der Javascript-Konsole: "this.neuePosition is not a function".
Du hast keinen protoypen, lediglich eine Konstruktorfunktion, die Eigenschaften und Methoden deklariert.
Der Aufruf ausserhalb des Prototypen funktioniert, aber dann ist nicht klar, wie ich den clearInterval einsetzen soll.
function fahrzeug(id,x,y,ri)
{
this.id = id;
Ich würd mir überlegen, ob du hier wirklich die id brauchst und bei jedem Aufruf das Objekt neu suchen willst oder nicht lieber an einer Stelle das Objekt speicherst.
this.x = x;
this.y = y;
this.ri = ri;this.aktiv = setInterval('this.neuePosition()',50); // START
Ein altes Problem, der String 'this.neuePosition()' wird im globalen Kontext ausgeführt, also unter window. D.h. this=window und window.neuPostion() existiert nicht.
Da du nur neuere Browser berücksichtigen willst kannst du
this.aktiv = setInterval(this.neuePosition,50);
schreiben (wobei ich das nicht in den Konstruktor packen würde)
this.neuePosition = function()
Wie im anderen Thread schon gesagt, das ist ein priviliegierte Funktion, pack die in den prototype
{
if ( this.x < 500 )
{
this.x++;
this.y++;
document.getElementById(this.id).style.left = this.x;
document.getElementById(this.id).style.top = this.y;
Das geht gar nicht, ohne Einheit sollte das gar nicht funktionieren, oder benutzt du etwa den IE?
In der Regel ist das keine gute Idee, gerade wenn du größere Skripte entwickelst, die Fehlermeldungen sind unbrauchbar und die Fehlertoleranz des IEs ist viel zu gross als dass dui Skripte schreiben kannst, von denen du auch was lernst.
Struppi.
Javascript ist toll (Perl auch!)