Ergebnis der swf-Datei
Jede Wellenlinie wurde in einem eigenen Movieclip
gezeichnet. Jeder Movieclip wurde mit einer anderen Methode erzeugt.
Der Programmcode mit Kommentar ohne Erklärungen
Kommentare sind im nachfolgenden Code grau geschrieben.
// ZEICHNEN EINER
WELLENLINIE IN EINEM MOVIECLIP MIT DREI VERSCHIEDENEN METHODEN |
Der Programmcode mit Erklärungen
1. Methode mit createEmptyMovieClip
Die Methode createEmptyMovieClip(name:String,
depth:Number): MovieClip
erstellt einen leeren Movieclip, der einem vorhandenen Movieclip
untergeordnet ist. Der Registrierungspunkt für den neuen leeren Movieclip
ist die linke obere Ecke des Movieclips in dem der neue erzeugt wurde.
Der Parameter name vom Typ
String ist der Instanznamen des neuen Movieclips. Der Parameter
depth vom Typ Number ist eine
Ganzzahl zur Angabe der Tiefenebene des neuen Movieclips.
Movieclips werden innerhalb eines übergeordneten Movieclips übereinandergelegt
und durchnummeriert.
Der Moveiclip mit der Tiefe 1 liegt dabei
ganz unten, aber über allen Ebenen, die in der Flash-Entwicklungsumgebung
angelegt wurden.
Der Rückgabewerte der Methode liefert eine Referenz auf die neu erstellte
Movieclip-Instanz.
createEmptyMovieClip("welle1_mc",
1); |
Im obigen Fall wird im Mainmovie ein neuer leerer Movieclip mit dem Namen
welle1_mc und der Tiefe 1 angelegt. Im Mainmovie deshalb, weil das
Script im ersten Frame der Timeline des Mainmovies plaziert ist.
Da der neue Movieclip welle1_mc nicht
extra positioniert wurde, ist sein Ursprung in der linken oberen Ecke des
Mainmovies. Deshalb wurde der Startpunkt der Kurve, die in dem neuen Movieclip
gezeichnet wird, relativ zur Bühnenhöhe definiert
Namenskonvention: Movieclipnamen sollten zur besseren Lesbarkeit immer mit _mc enden.
Automatische Auswahl der Moviecliptiefe
Wenn man einen Movieclip mit einer konkreten Tiefe erzeugt, kann es passieren,
dass ein Movieclip mit dieser Tiefe bereits existiert und dadurch "überschrieben"
wird. Denn es kann pro Tiefe nur einen Movieclip geben.
Um das zu verhindern, sollte man die Methode
getNextHighestDepth() verwenden, die die nächste noch nicht
vergebene Tiefe im übergeordneten Movieclip liefert.
// Erzeugen des leeren Movieclips welle1_mc
auf der nächsten freien Ebene createEmptyMovieClip("welle1_mc", this.getNextHighestDepth()); |
Positionierung von Movieclips
Über die Movieclipeigenschaften _x
und _y kann man den Ursprung
(Registrierungspunkt) eines Movieclips relativ zum Ursprung des übergeordneten
Movieclips positionieren.
Wir können daher alternativ zum obigen Beispiel den Ursprung des Movieclips
welle1_mc auf das erste Viertel der linken Bühnekante festlegen
und die Kurve innerhalb des neuen Movieclips von dessen Ursprung wegzeichnen.
createEmptyMovieClip("welle1_mc",
this.getNextHighestDepth()); // Movieclipursprung auf das erste Viertel der Bühnenhöhe festlegen welle1_mc._x = 0; welle1_mc._y = Stage.height/4; // Zeichnen der roten Gesamtkurvenfunktion im Ursprung des Movieclips welle1_mc curve(welle1_mc, baseCurve, [0, 0], Stage.width, 45, 100, 1, 0xFF0000); |
2. Methode mit attachMovie
Die Methode attachMovie(id:String, name:String,
depth:Number): MovieClip
verknüpft ein Symbol aus der Bibliothek mit dem neuen Movieclip.
Der Parameter id vom Typ
String ist der Verknüpfungsname des Movieclip-Symbols in der
Bibliothek, das einem Movieclip auf der Bühne zugewiesen werden soll.
Das ist der Name, den man im Dialogfeld Verknüpfungseigenschaften im
Feld Bezeichner eingibt.
Der Parameter name vom Typ
String ist der eindeutige Instanzname für den neuen Movieclip
und depth gibt wieder die Tiefenebene des Movieclips an.
Der Rückgabewerte der Methode liefert eine Referenz auf die neu erstellte
Movieclip-Instanz.
attachMovie("EmptyClip",
"welle2_mc", 2); |
Im obigen Fall wird im Mainmovie ein neuer Movieclip mit dem Namen
welle2_mc und der Tiefe 2 angelegt und mit dem Symbol
EmptyClip aus der Bibliothek verknüpft.
Da der neue Movieclip welle2_mc nicht
extra positioniert wurde, ist sein Ursprung wieder in der linken oberen
Ecke des Mainmovies. Deshalb wurde der Startpunkt der Kurve, die in dem
neuen Movieclip gezeichnet wird, relativ zur Bühnenhöhe definiert.
Damit die Verknüpfung zu einem Symbol der
Bibliothek möglich ist, muss dieses in der Autorenumgebung von
Flash über den Menüpunkt Einfügen
> Neues Symbol ... (Strg+F8) erzeugt werden.
Wichtig ist dabei die Aktivierung der Verknüpfung Export
für ActionScript.
Das Symbol mit dem frei gewählten Namen
EmptyClip liegt anschließend in der Bibliothek, ist leer, d.h.
enthält keine Grafikelemente und kann über
attachMovie verknüpft werden.
Variation bei Auswahl der Moviecliptiefe und Positionierung des Movieclips
attachMovie("EmptyClip", "welle2_mc",
this.getNextHighestDepth()); // Movieclipursprung auf das erste Viertel der Bühnenhöhe festlegen welle2_mc._x = 0; welle2_mc._y = Stage.height/2; // Zeichnen der grünen Gesamtkurvenfunktion im Ursprung des Movieclips welle2_mc curve(welle2_mc, baseCurve, [0, 0], Stage.width, 45, 100, 1, 0x00FF00); |
3. Methode: Plazieren des leeren Symbols auf der Bühne in der Flashautorenumgebung
Bei dieser Methode wird das leere Symbol "EmptyClip" in der Autorenumgebung
von Flash aus der Bibliothek als Instanz auf die Bühne gezogen.
Dadurch ist die Position definiert. Die MovieClip-Instanz bekommt in der
Eigenschaften-Palette einen eindeutigen Namen.
// Ausgangspunkt
der Kurve festlegen im dritten Viertel der Bühnenhöhe |
Im obigen Fall wurde das Symbol auf den Bühnenursprung gezogen. Daher
wird der Startpunkt der Kurve auf 3/4 der linken Bühnenkante gesetzt.
In der Eigenschaftenpalette bekommt die leere Movieclipinstanz den Namen
welle3_mc und muss daher nicht mehr
in ActionScript definiert werden.
Die Instanz wurde in einer eigenen Ebene im Frame 1 des Mainmovies abgelegt.
Daher ist eine Angabe der Tiefe ist nicht notwendig, da dieser Clip jetzt
in einer Ebene der Flash-Autorenumgebung liegt.
Variation bei der Positionierung des Movieclips
Das Symbol wurde auf 3/4 der linken Bühnenkante gesetzt. Das ist daher der Ursprung von welle3_mc und somit kann die Kurve im Punkt (0|0) starten.
// Zeichnen der blauen Gesamtkurvenfunktion
im Ursprung des Movieclips welle3_mc curve(welle3_mc, baseCurve, [0, 0], Stage.width, 45, 100, 1, 0x0000FF); |