Der Movieclip wird vom oberen zum unteren Bühnenrand bewegt und stoppt dort .
Ergebnis der swf-Datei
Der Programmcode mit Kommentar ohne Erklärungen
Kommentare sind im nachfolgenden Code grau geschrieben.
// ZEICHNEN EINER WELLENLINIE, DIE SICH VOM OBEREN BÜHNENRAND NACH UNTEN BEWEGT UND DORT STOPPT |
Der Programmcode mit Erklärungen
Stoppen der Bewegung durch Löschen des Event-Handlers mit delete
Solange die y-Position des Movieclips welle_mc kleiner als die Bühnenhöhe ist, soll sich der Clip nach unten bewegen. In unserem Fall um 10 Pixel pro EnterFrame-Ereignis.
Wenn der untere Bühnenrand erreicht ist, soll der Clip nicht mehr auf EnterFrame reagieren, d.h.nicht mehr bewegt werden.
Das erreicht man dadurch, dass in diesem Fall der Eventhandler onEnterFrame mit delete gelöscht wird.
this.onEnterFrame = function() { |
Im obigen Fall löscht sich der Event-Handler onEnterFrame selbst, wenn die Bedingung welle_mc._y < Stage.height nicht mehr erfüllt ist.
Die Selbstlöschung ergibt durch die Selbstreferenz mit this in delete this.onEnterFrame.
Alternative Definition des Event-Handlers onEnterFrame
Man definiert den Event-Handler onEnterFrame nicht für das Mainmovie, sondern für den Movieclip welle_mc.
welle_mc.onEnterFrame = function() { if (this._y<Stage.height) { this._y += 10; } else { delete this.onEnterFrame; } }; |
In diesem Fall reagiert der Event-Handler auf Ereignisse in der Timeline des Movieclips welle_mc. Im Anweisungsblock des Funktionsliterals muss daher this stehen, weil sich der Movieclip "selbst" bewegt.