Pastor Pixel Tipps Tutorial Anleitungen Hilfe

Actionscript 3 Basics

 

Variablen

Variablen sind ein wichtiger Bestandteil von Programmiersprachen. Eine Variable ist eine Referenz auf ein Element oder einen Inhalt. Sie vergeben der Variablen einen Namen, den sie im Rahmen der Namensregeln frei wählen können und einen Wert. Der Wert ist variabel, er kann sich ändern. Sie müssen sich lediglich den Namen der Variablen merken. Man kann eine Variable mit einer Tasche vergleichen, in der verschiedene Inhalte hinterlegt sein können. Eine Variable hat einen bestimmten Datentyp. Dieser Datentyp ist festgelegt und kann sich nicht ändern. Datentypen sind beispielsweise numerische Werte (Zahlen mit denen man rechnen kann) oder Strings (Zeichenketten). Es gibt viele weitere Datentypen.

Variablen werden mit dem Schlüsselwort var deklariert. Die strikte Typisierung verlangt einen Datentyp. Man kann den Datentyp auch später zuweisen, siehe unten.

Der Name ist frei wählbar. Er darf nicht mit einer Zahl beginnen. Außer dem Unterstrich sind keine Sonderzeichen und Leerzeichen erlaubt. Laut Konvention sollte man Variablennamen klein schreiben während man Klassennamen groß schreibt. Wählen Sie unbedingt aussagekräftige Namen.

Wenn man noch keinen Wert bei der Deklaration zuweist, wird der entsprechende Standardwert zugewiesen (siehe unten). In AS2 herrschte eine lose Typisierung, das heißt der Datentyp konnte sich ändern. Die strikte Typisierung hat den Vorteil einer erhöhten Verarbeitungsgeschwindigkeit, denn bei der Deklaration einer Variablen wird ihr ein bestimmter Speicherplatz zugewiesen, der je nach Datentyp unterschiedlich groß ausfällt.

Schlüsselwort   frei vergebenen Name Doppelpunkt Datentyp Gleichheitszeichen Wertzuweisung
var   meineVar : Number = 25

Deklaration
var meineVar:String;

Initialisierung
meine Var="der Text";

Deklaration und Initialisierung
var meineVar:String = "ein Text";

Kurzform für mehrere Variablen
Variablen, die sinngemäß zusammengehören, kann man auch folgendermaßen deklarieren:
var weite:Number, hoehe:Number;
Die Variablen werden mit Komma getrennt, Schlüsselwort var ist Pflicht
Auch eine Wertzuweisung ist möglich:
var weite:Number=20, hoehe:Number=39;

Beispiel
Man stelle sich ein Eingabefeld vor, in das ein User seinen Namen eintragen kann. Das kann man mittels einer Variablen regeln. Man deklariert eine Variable. Sie hat noch keinen Wert bzw. den Standardwert null und bekommt nachdem der User seinen Namen eingetragen hat, den Eintrag zugewiesen.

Beispiel
Man erzeugt eine Variable, die die Anzahl der Treffer in einem Spiel zählt, um so am Ende des Spiels das Spielergebnis zu ermitteln.

Beispiel
Ein on-off-Button der hin und her schaltet, kann mittels einer Variable programmiert werden, die das Klicken überwacht und speichert.

Beispiel
Eine Navigation oder ein Menü, welches anzeigt, in welchem Menüpunkt man sich befindet, speichert den Menüpunkt in einer Variablen, so dass ein Balken oder Zeiger den entsprechenden Menüpunkt markieren kann.

Datentypen

Beim Deklarieren einer Variablen mit strikter Typisierung muss der Datentyp zugewiesen werden. In AS3 kann man eine Variable deklarieren, ohne ihr einen Datentyp zuzuweisen. Das sollte jedoch nur in Ausnahmefällen gemacht werden.
Variablendeklaration ohne Zuweisung des Datentyps:

var meineVar:*

Jeder Datentyp hat eine Klasse. Die Klassen findet man im Actionfenster unter: Oberste Ebene. Hier sieht man die Eigenschaften und Methoden der Klassen, die Änderungen ermöglichen.

Die wichtigsten Datentypen:

Array, Boolean, Date, int, Math, Number, Object, uint, XML, MovieClip, Sprite, Shape

Nach Datentyp überprüfen
is Operator
/ boolean

Mit dem is Operator kann man nicht nur den Datentyp überprüfen sondern auch, ob der Datentyp eine Schnittstelle implementiert (Vererbung).

var myMc:MovieClip = new MovieClip();
if(myMc is MovieClip)trace("ist Movieclip");
if(myMc is DisplayObject)trace("ist auch Display Objekt");

Siehe Adobe Programmierhandbuch S.98. Strikter Modus

Datentyp feststellen
Man kann den Datentyp feststellen mittels typeof()
trace(typeof(meinVar));

Wenn man abfragen will, ob eine Instanz einem bestimmten Datentyp zugehört (Vererbung):

if(myMovie is MovieClip){
Anweisung,
}

Standardwerte
Wenn einer Variable beim Initiieren kein Wert zugewiesen wurde, weist Flash einen Standardwert zu.
var meineVar:Number;

Bei Datentypen außer "Boolean", "Number", "int" und "uint" lautet der Standardwert einer nicht initialisierten Variablen null.

 

Datentyp Standardwert  
Boolean false  
Number NaN isNaN(meineVar)
int 0  
uint 0  
String null  
Array null  
Object null  
* undefined  

Für Variable des Typs Number gibt es eine besondere Funktion auf oberster Ebene namens isNaN(), die den booleschen Wert true zurückgibt, wenn die Variable keine Zahl ist, andernfalls gibt sie false zurück. Damit kann man somit auch überprüfen, ob eine Number-Variable initialisiert wurde.

 

Typumwandlung

siehe Adobe Hilfe

Gültigkeitsbereich

Wenn man eine Variable deklariert, hat sie nur in der Zeitleiste oder der Klasse Gültigkeit, in der sie deklariert wurde.

Wenn man beispielsweise in der Hauptfilmzeitleiste eine Variable deklariert, kann man nicht einfach innerhalb eines Movieclips darauf zugreifen. In AS2 konnte man globale Variablen für die gesamte Flashdatei deklarieren. Das ist in AS3 nicht mehr möglich.

Man kann jedoch im Hauptfilm einer Instanz eines MCs eine Variable anhängen. Das macht man folgendermaßen:

Füge eine Movieclipinstanz auf die Bühne ein und vergebe ihr einen Instanznamen beispielsweise myMc.
Im Actionscriptfenster füge folgenden Code ein.

myMc.bildnr = 2;

Das lässt sich gut für einfache Menüs einsetzen, siehe dazu folgendes Tutorial.

Eine Variable, die innerhalb einer Funktion deklariert wird, hat nur innerhalb der Funktion Gültigkeit. Siehe dazu das Thema Funktion.

Eine Variable in einer for-Schleife hat auch außerhalb der for-Schleife seine Gülgitkeit. Auch das war in AS2 anders.

Konstante / Variable mit festem Wert

Neben der Variablen gibt es noch die Konstante, das ist eine "Variable" mit festem Wert. Das bietet sich an bei Werten, die man immer wieder für Berechnungen braucht.

const myPi:Number = 3.141592653589793;

Codehinweise

Automatische Codevervollständigung im Actionscript Fenster oder Flash Builder.

Diese Einstellung muss in den Voreinstellungen aktiviert werden. Dort kann man auch eine Verzögerung eingeben. Wenn man es nicht aktviert hat, kann man mit mittels Strg Enter die Codehinweise einblenden oder über den Button im Actionscriptfenster oben.

Schreibe var myName: und drücke dann Strg Leertaste
Es erscheint das Codehinweisfenster. Schreibe den Datentyp und markiere ihn im Hinweisfenster sobald der richtige Typ dort erscheint.
Drücke Enter und die Import Anweisung wird auch oben eingefügt.

der Pastor rät Codehinweise Hilfe Adobe Manchmal werden die Codehinweise trotz korrekter Einstellung nicht angezeigt, in diesem flashforum.de Beitrag wird eine Lösung vorgestellt. Danke user "tchero". Ich zitiere:
"...Flash prüft bei den Codehinweisen den kompletten Ordnerinhalt. Es bindet also auch automatisch selbsterstellte AS3 Klassen in dem selben Ordner mit ein. Es sollten sich also nicht zu viele andere Verzeichnisse oder Dateien in dem Verzeichnis befinden."

Also, Datei in einem leeren Ordner abspeichern und eventuell auch Verweise auf selbst erstellte Klassen entfernen. Siehe OOP

Wenn man eine Variable deklariert und ihr den Datentyp zuweist, kann Flash die entsprechenden Codehinweise einblenden.
z.B: erzeuge ein Array mit var myAr:Array = new Array(3,4,5);

Wenn man nun im Actionscriptfenster den Variablennamen gefolgt von einem Punkt schreibt erscheinen die Codehinweise für das Array.

 

Änderungen in AS3

Auch in for-Schleifen müssen Variablen mit dem Schlüsselwort var deklariert werden und ein Datentyp zugewiesen werden. Die Variable hat auch außerhalb der For-Schleife ihrer Gültigkeit. Siehe dazu das Thema for Schleife.

 for (var i:int=1; i<10; i++)
 {
  outputText.appendText(i.toString()+"\n");
 
}

Dynamische Textfelder zeigen keine Number Datentypen mehr an. Sie müssen vorher in Strings umgewandelt werden (gecastet werden).

var zahl:Number = 5;
anzeige.text = String(zahl);

Das kann man auch mit der Funktion toString() machen.

var zahl:Number = 5;
anzeige.text = zahl.toString();

Neu hinzugekommen ist hier auch die Funktion appendText(), welche einen String an den vorhandenen String anhängt. In Actionscript 1 hätte man die gleiche Funktion so schreiben können.

for (i=1;i<8;i++) 
{
outputText.text+=i+"\n";
}

 

Hier noch eine andere Möglichkeit in AS3. Man sieht der + Operator verknüpft auch in AS3 Stings mit Number Datentypen. Heraus kommt ein String. Außerdem ist das + Zeichen der Plusoperator bei Zahlenwerten.

 

 

var bilder:String = "";
for (var i:uint = 0; i < 10; i++)
{
	bilder +=  i + ".jpg, ";
anzeige.appendText(bilder);
}



Number Fließkommazahl
int
positive und negative Ganzahlen
uint
positive Ganzzahlen
In Actionscript 1 und 2 gab es für numerische Wert nur number, welches eine Fließkommzahl definierte. In Actionscript 3 kommt int für ganzzahlige Werte ohne Komma und uint für positive ganzzahlige Werte hinzu.

 

Für den Inhalt dieser Seite ist eine neuere Version von Adobe Flash Player erforderlich.

Adobe Flash Player herunterladen