2 Grundlagen

Thema:
Christian Hof's Variablen Tutorial
Description:
Variablen in allen Variationen
Keywords:
Flash, Set Variable, Dynamik, Interaktivität, Steuern, Filminstanz, Movie Clip, Level, Aktionen, Befehle
Author:
Christian Hof
Date:
04.01.2000
Doc-ID:
06-001
URL:
http://www.flashworker.de/tutorial/06/002.html
Version:
1.0
Änderungen:

Erstellung

Anforderungen:
Flash 4
Vorkenntnisse:
Flash Grundkenntnisse
Download:
--

1 Einleitung

2 Grundlagen
  Am Anfang war Set Variable
  Was macht man mit Set Variable ?
  Wie erzeugt man den Befehl ?
  "1" ist nicht das gleiche wie 1
  Variablennamen im Wertfeld
  Und was ist mit Strings ?
  Zusammenfassung

3 Textfelder

4 Standardbefehle

5 The Matrix

6 Ausblicke

 

2 Grundlagen

Am Anfang war "Set Variable"

Abb.1: Der Befehl SetVariable in Flash 4
Abb.1: SetVariable in Flash 4

"Set Variable" findet sich als anklickbarer Befehl in der Liste aller verfügbarer Aktionen, die einer Schaltflächeninstanz oder einem Bild in der Zeitleiste zugewiesen werden können. (Abb.1). Es soll hier nicht weiter beschrieben werden, wie ein Befehl ausgewählt wird, das können Sie in Hal E Lujah's Tell Target Tutorial nachlesen (falls Sie gern in einem Tutorial geduzt werden wollen).
Allerdings möchte ich dennoch gerne erwähnen, dass die Copy-Paste Methoden auch hier eingesetzt werden können. Wenn Sie also einen markierten Befehl mit STRG-C kopieren (der Dialogfokus muss aber im Quellcode liegen), so können Sie ganze markierte Befehlssequenzen in die Zwischenablage kopieren und an anderer Stelle oder auch in einen HTML Editor einfügen. Wenn Sie bei Befehlen wie Tell Target, die mit der Anweisung End Tell Target abgeschlossen werden, nur einen Teil der ActionScript Sequenz kopieren, so wird automatisch der gesamte zugehörige Codebereich kopiert. Eingefügt wird immer unter einer markierten Stelle.





Was macht man mit Set Variable ?
Set Variable wird zunächst einmal verwendet, um eine Variable zu erzeugen und ihr einen Wert zuzuweisen. Das einfachste Beispiel würde also folgendermaßen aussehen:

Set Variable "meinerstertext" = "Hallo Welt"
Was passiert hier? Die Programmzeile Set Variable befiehlt dem Shockwave Plugin oder dem Standalone Player, eine Variable mit dem Namen meinerstertext zu erzeugen und in diesen Informationsbehälter die Zeichenkette Hallo Welt zu schreiben. Wir wollen nun versuchen, diese Befehlszeile korrekt nachzubauen.




Wie erzeugt man den Befehl ?

Wir haben ja schon weiter oben erfahren, wie man Flash Befehle erzeugen kann. Wir klicken also Set Variable an und erhalten einen jungfräulichen Befehl, der am Anfang wie folgt aussieht:

Set Variable "" = ""

Abb.2: SetVariable im Einsatz
Abb.2: Set Variable im Einsatz

Es mag zunächst überraschen, dass hier Anführungszeichen zu sehen sind, wir werden aber später sehen, daß es mit diesen Anführungszeichen eine besondere Bewandnis hat.
Jetzt muss nur noch im Eingabebereich für den Variablennamen eben dieser eingegeben werden, in unserem Fall also meinerstertext, und im Eingabebereich für den zugehörigen Wert die Zeichenkette Hallo Welt getippt werden.





"1" ist nicht das gleiche wie 1

Wir wollen nun eine Variable "sinndeslebens" (Dank an Stefan Münz für dieses Anhalterbekenntnis) definieren, und ihr den Wert 42 zuweisen. Wenn wir diese Informationen in die Set Variable Eingabebereiche eintragen, erhalten wir aber folgendes Ergebnis:

Set Variable "sinndeslebens" = "42"
Hier wird aber keine Zahl, sondern die Zeichenkette 42 in die Variable sinndeslebens geschrieben. Noch gravierender wirkt sich die Geschichte aus, wenn sinndeslebens folgendermassen festgelegt wird:
Set Variable "sinndeslebens" = "6*7"

Abb.3: Umstellen der Formate in Flash 4
Abb.3: Umstellen der Formate in Flash 4

Hier wird die Zeichenkette 6*7 in die Variable geschrieben, was nicht ganz dem gewünschten Ergebnis 42 entspricht. Damit dennoch 42 als Wert übergeben wird, muß die Zeichenfolge (String Literal) auf Ausdruck (Expression) umgestellt werden. Als dritte Option steht ein Ausdrucks Editor zur Verfügung, der aber hier nicht näher erläutert werden soll.
Wichtig ist jetzt noch, daß die Rechenoperatoren Addition (+), Subtraktion (-), Multiplikation (*) und Division (/) vorhanden sind. Die Division durch 0 erzeugt, wie in jeder anderen Programmiersprache, auch hier einen Fehler, der die Variable unbrauchbar macht. Der Division-By-Zero Fehler wird übrigens nur im Output angezeigt, wenn dieser geöffnet ist.



Variablennamen im Wertfeld
Das Wertfeld des Set Variable Befehls kann nun als Ausdruck verwendet werden, um mit Variablen zu rechnen. Wir betrachten dazu folgendes Beispiel

Set Variable "x" = 3
Set Variable "y" = 2
Set Variable "addition" = x + y
Set Variable "subtraktion" = x - y
Set Variable "multiplikation" = x * y
Set Variable "division" = x / y

Es ist wohl offensichtlich, dass in der Variablen addition nun 5, in subtraktion 1, in multiplikation 6 und in division 1.5 gespeichert worden sind. Erfreulich ist ausserdem, dass mit Variablen ohne Probleme weitergerechnet werden kann. Dabei wäre es übrigens egal, ob in der Variablen x der Wert 2 oder der String "2" steht. Flash castet automatisch bei den Rechenoperatoren Strings zu Zahlen. Dabei werden Zeichenketten wie "1.5" wirklich zur Zahl 1.5, aber "1,5" wird zu 0, wie alles, was nicht als Zahl identifiziert werden kann.






Und was ist mit Strings ?

Wenn das Pluszeichen Strings automatisch in Zashlen umwandelt und addiert, kann es nicht zur Verkettung von Strings verwendet werden. Hierfür wurde in Flash das Und-Zeichen (&) zur Verfügung gestellt. Folgendes wäre also möglich:

Set Variable "x" = "Hallo"
Set Variable "y" = "Welt"
Set Variable "meinerstertext" = x & " " & y
Es muss nicht ausführlich erklärt werden, warum in der Variablen meinerstertext die Zeichenkette "Hallo Welt" hinterlegt wird. Spannend ist allerdings, dass auch in Anführungszeichen gestellte Strings mit Variablenstrings verkettet werden können. Folgendes ist zudem auch noch möglich
Set Variable "meinerstertext" = "Hallo" & CHR(32) & "Welt"
Hier wird das Leerzeichen über seinen Ascii-Wert erzeugt. Schön, dass das geht, wir weden es später noch brauchen können.





Zusammenfassung

Was haben wir also bis jetzt in Erfahrung gebracht?





Weiter