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
/*
Zeichnen der Wellenlinie in einem eigenen neuen Movieclip welle_mc
*/
createEmptyMovieClip("welle_mc", this.getNextHighestDepth());
welle_mc._x = 0;
welle_mc._y = 0;
curve(welle_mc, baseCurve, [0, 0], Stage.width, 100, 100, 1, 0xFF0000);
/*
Bewegen der Kurve vom oberen zum unteren Bühnenrand, wo die Bwegung gestoppt wird
Die Geschwindigkeit hängt von der Bildrate des Mainmovies ab.
*/
this.onEnterFrame = function() {
   if (welle_mc._y<Stage.height) {
      welle_mc._y += 10;
   } else {
      delete this.onEnterFrame;
   }
};
/*
Definieren der Funktionen curve() und baseCurve()
function curve(mc:MovieClip, bc:Function, pt:Array, l:Number, a:Number, b:Number, lineWidth:Number,                lineColor:Number):Void {
   mc.lineStyle(lineWidth, lineColor);
   mc.moveTo(pt[0], pt[1]);
   while (l>0) {
      pt = bc(mc, pt, a, b);
      l = l-a;
   }
}
function baseCurve(mc:MovieClip, pt:Array, a:Number, b:Number):Array {
   mc.curveTo(pt[0]+a/4, pt[1]-b/2, pt[0]+a/2, pt[1]);
   mc.curveTo(pt[0]+3*a/4, pt[1]+b/2, pt[0]+a, pt[1]);
   pt[0] = pt[0]+a;
   return pt;
}

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() {
   if (welle_mc._y<Stage.height) {
      welle_mc._y += 10;
   } else {
      delete this.onEnterFrame;
   }
};

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.