öffentlich
Redaktion Druckversion

Flash: Actionscript 3.0

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.

Aufgabe:

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

Aufgabe:

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.

Mitglied werden, Vorteile nutzen!

  • Sie können alles lesen und herunterladen: Beiträge, PDF-Dateien und Zusatzdateien (Checklisten, Vorlagen, Musterbriefe, Excel-Rechner u.v.a.m.)
  • Unsere Autoren beantworten Ihre Fragen

Inhalt

Über die Autorin:

arbeitet seit 1999 als Web- und Flash-Designerin. Das Spezialgebiet der zertifizierten Animatorin sind die Konzeption und Entwicklung interaktiver Designs. Dazu gehört ein tiefes Verständnis dafür, was "unter der Haube" passiert. Schließlich macht die Programmierung ca. 50 Prozent ihrer Arbeit aus. Faszinierend findet Sonja Vieten dabei gerade die Verbindung von Design und interaktiver Programmierung.

Newsletter abonnieren