Schnelleinstieg in die ActionScript 3.0-Programmierung
Variablen und Datentypen
Neben der Arbeit mit Ereignissen, Objekten, Instanzen und deren Methoden und Eigenschaften bildet der Umgang mit Variablen und Datentypen ein Herzstück bei der interaktiven Programmierung.
Wir werden bei der Umsetzung des Projekts noch intensiver damit arbeiten und daher gehe ich hier nur kurz auf die theoretische Basis ein. Sie finden die Beispieldatei "AS_Variablen.fla" im Ordner "Übungsdateien1".
Variablen
Variablen sind eine Art Container bzw. Platzhalter für Informationen, die erst später im Code angelegt werden und sich zur Laufzeit des Films auch ändern können, wie z. B. eine Punkteanzeige bei einem Spiel. In der Praxis können Sie damit Flash-Filme erstellen, die "dynamisch" sind.
Legen Sie eine komplett neue, leere Flash-Datei an. Legen Sie zwei Ebenen an. Eine oberhalb, AS, für Ihr Script.
Auf der unteren Ebene ziehen Sie ein mehrzeiliges dynamisches Textfeld (Typ "Klassischer Text") auf, das Sie "ausgabe_txt" nennen.
Dynamisches Textfeld
Nun zum Aktionen-Code. Eine Variable deklarieren bzw. initiieren Sie mit dem Schlüsselwort
var
gefolgt von einem Leerzeichen,
gefolgt von einem frei gewähltem Variablennamen:
var meinName
gefolgt von einem Doppelpunkt, hinter dem der Datentyp definiert wird:
var meinName:String
gefolgt von dem eigentlichen Wert bzw. der Information, die diese Variable speichern soll. Werte, die im Code direkt angezeigt werden, nennt man auch Literal.
var meinName:String = "akademie.de";
Da ich hier Text als Information speichere, gebe ich als Datentyp String an - Flash weiß dann, dass es sich um eine Zeichenkette handelt - und den Wert selbst setze ich dann auch in Anführungszeichen, die alle Strings kennzeichnet. Die Anführungszeichen kennen Sie bereits aus der ersten Übung, dort wurde die Internetadresse ebenfalls in Anführungszeichen gesetzt.
Script
An der Farbgebung sehen Sie wie immer, ob Sie alles richtig gemacht haben. Es existiert nun also eine Information in Ihrem Film mit dem Wert "akademie.de".
Mit dem schon bekannten Befehl
trace(meinName);
können Sie diese Variable aufrufen und ihren Wert bzw. Inhalt im Ausgabefenster ausgeben.
Ausgabe Meldung
Stellen Sie sich nun vor, Sie möchten dem Kunden ermöglichen, an einer zentralen Stelle Textinformationen selbst einzugeben - die dann im Film an beliebiger Stelle automatisch übernommen und angezeigt werden - z. B. die Beschriftung von Menüelementen.
Das dynamische Textfeld "ausgabe_txt" dient in dieser Übung dazu, den Inhalt der Variablen auszugeben - daher ist es auch so wichtig, dass Sie beim Anlegen des Textfelds als Typ "Dynamischer Text" wählen.
Ergänzen Sie den Code um folgende Zeile:
ausgabe_txt.text = meinName;
Testen Sie den Film!
SWF
Der Inhalt der Variablen wird nun in Ihrem Film angezeigt. Die Formatierung des Textfelds können Sie wie gewohnt über den Eigenschafteninspektor vornehmen. Der Inhalt ist nun jedoch davon unabhängig. Probieren Sie es aus und geben Sie anderen Text in Ihrem Code ein. Die Ausgabe im Film wird sich immer anpassen.
Globale und lokale Variablen
Global
Sie können auf diese Variable von jeder Stelle und zu jedem Zeitpunkt Ihres Film nun zugreifen, denn es ist eine so genannte globale Variable.
Achten Sie darauf, wie zuvor schon bei der Zeitleistensteuerung, dass Sie in verschachtelten Movieclips ebenfalls beim Zugriff von innen nach außen die Pfadangabe zur root, also der Hauptzeitleiste, nicht vergessen. Denn global heißt nicht automatisch "Zugriff über alle Zeitleisten hinweg".
Beispiel:
trace(MovieClip(root).meinName);
Lokal
Deklarieren Sie nun für die nächste Übung zunächst eine neue Variable für eine Zahl. Der Datentyp wäre in dem Fall "Number" und nicht mehr "String", da es sich hier um eine Zahl handelt. Schreiben Sie den Code gleich unter den bereits vorhandenen.
var meineZahl:Number = 120; ausgabe_txt.text= meineZahl.toString();
Hier muss mit der Methode toString(); der Wert der Variablen zwecks Textausgabe in eine Zeichenkette umgewandelt werden. Im Ausgabetextfeld und im SWF-Film sollte nun diese Zahl angezeigt werden. Testen Sie das.
Nummer als Text
Hier bemerken Sie auch, wie Flash den ActionScript-Code interpretiert. Von oben nach unten, und von links nach rechts (auf der Zeitleiste) - und die letzte Information überschreibt dabei die vorhergehende. Der Inhalt des Textfelds "ausgabe_txt" ist nun also nicht mehr "akademie.de" - obwohl die Anweisung noch im Code steht.
Variablen, die mit einem vorangestellten var deklariert werden, sind zunächst ganz normale Variablen mit einer Gültigkeit über die komplette Zeitleiste. Mit einer Ausnahme werden sie jedoch zu lokalen Variablen, nämlich dann, wenn die Variable innerhalb einer Funktion deklariert wird.
Wenn eine Variable innerhalb einer Funktion deklariert wird, beschränkt sich ihre Lebensdauer auf den Moment, in dem die Funktion ausgeführt wird. Danach tut Flash so, als sei nichts geschehen. Schreiben Sie also unterhalb Ihres bisherigen Scripts:
function test():void {
var meineZahl:Number = 150;
trace(meineZahl));
}
test();Achten Sie darauf, dass der trace-Befehl erst nach der Deklarierung der Variablen, aber noch innerhalb der Funktion aufgerufen wird.
Was passiert?
Hier haben wir zunächst einmal eine einfache Funktion, die ohne einen EventListener ausgeführt wird. Denn die Ausführung geschieht nicht in Zusammenhang mit einem Ereignis, sondern dann, wenn Sie die Funktion im Script aufrufen. Der Aufruf geschieht durch die Zeile:
test();
in unserem Fall also ganz am Ende des Scriptblocks.
Funktion test();
Sie sehen hier sehr schön, dass Flash zunächst auf die Definition der globalen Variablen mit dem Wert 120 trifft - und diesen auch wie vorgegeben in der Textfeldausgabe im Film ausgibt.
Später im Code trifft Flash jedoch eine Variable mit gleichem Typ und Namen an, nämlich meineZahl, jedoch diesmal innerhalb einer Funktion. Die doppelt vorhandene gleich lautende Deklarierung ist zulässig, aber auch nur in dieser Kombination.
Ansonsten müssen Variablen in ihrem Gültigkeitsbereich immer eindeutig und einzigartig benannt werden, damit es nicht zu Konflikten kommt.
Der Wert innerhalb der Funktion ist 150 - und wird entsprechend als trace-Meldung ausgegeben. Lokale Variablen können also globale Variablen überschreiben.
Sie können auf lokale Variablen auch nur lokal zugreifen und nicht von außerhalb.
Schreibweise
Variablen
müssen in einem Wort geschrieben werden,
dürfen nicht mit einer Zahl beginnen,
dürfen kein Flash internes Schlüsselwort sein (blau),
dürfen keine Sonderzeichen, außer Unterstrich, enthalten.
Datentypen
Sie haben nun bereits mit Variablen des Datentyps String und des Datentyps Number gearbeitet. Die Typisierung einer Variablen erfolgt gleich nach dem Doppelpunkt. Hier hilft Ihnen allerdings das besagte Optionsmenü, das automatisch nach dem Doppelpunkt eingeblendet wird, nicht wirklich weiter, da es sehr viele Typen gibt.
Sie lernen im nächsten Abschnitt den Datentyp "MovieClip" kennen, bei der dynamischen Erzeugung von eben diesen.
Variablen löschen
Variablen nehmen, es sei denn es handelt sich um lokale Variablen, ein wenig Speicher in Anspruch. Mit einem meineVariable = ""; leeren Sie den Inhalt für ein Ausgabefeld.
Mit dem Befehl meineVariable = null; geben Sie den Speicher für eine nicht mehr benötigte Variable wieder frei. Das benötigen Sie allerdings nur, wenn Sie mit sehr vielen Variablen arbeiten.
Dies ist eine Leseprobe
Möchten Sie den Beitrag komplett lesen? Dann werden Sie Probemitglied und testen Sie akademie.de 14 Tage kostenlos!
Auf Flash ActionScript 3.0 erfahren Sie mehr über diesen Beitrag und die weiteren Leseproben.
Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.
Ich bin bereits Mitglied