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.