Syntax

Die Syntax einer Programmiersprache besteht aus einer Reihe von formalen Vorgaben die bestimmen, wie Befehle in dieser Sprache formuliert sein müssen, damit der Computer sie versteht. Wie für normale Sprachen gibt es also eine Grammatik, an die der Programmierer sich halten muss, um für den Computer verständliche Ausdrücke (= Sätze) zu formulieren.

Bezeichner
Bezeichner sind Namen für Variablen, Funktionen, Eigenschaften, Objekte oder Methoden. Bei der Wahl dieser Namen ist der Programmierer weitgehend unbeschränkt, mit zwei Ausnahmen: Wie leicht Code für einen menschlichen Programmierer zu verstehen ist, hängt zu grossen Teilen von einer guten Wahl der Namen/Bezeichner ab. Aus diesem Grund macht es Sinn, sich weitere (freiwillige) Beschränkungen bei der Namenswahl (naming conventions) aufzuerlegen um möglichen Missverständnissen vorzubeugen - s. Konventionen.
 * 1) Schlüsselwörter können nicht als Namen vergeben werden
 * 2) Manche Sonderzeichen sind in Namen nicht erlaubt

Schlüsselwörter
Schlüsselwörter sind reservierte Wörter, die im ActionScript-Code nicht als Bezeichner verwendet werden dürfen. Diese Wörter sind reserviert, weil sie bereits als Befehle in der ActionScript-Syntax festgelegt sind. Schlüsselwörter werden vom Editor in fetter Schrift dargestellt, meist in blau, in gelb wenn es um Kontrollstrukturen geht, wenige Ausnahmen in schwarz (s. unten). Die folgende Liste enthält die wichtigsten Schlüsselwörter in ActionScript: code format="actionscript" add, this, super, with, try, catch, private, on, public, typeof, extends, void, import, delete if, else, switch, case, for, while, break, continue, return, in new, var, function code

Kommentare
Kommentare sind nur für die Augen des menschlichen Programmierers gedacht, der Compiler ignoriert sie. Man unterscheidet zwischen einzeiligem und mehrzeiligem Kommentar. Kommentare werden vom Editor grau gefärbt. code format="actionscript" // Dies ist ein einzeiliger Kommentar. /* Dies ist ein mehrzeiliger Kommentar,

er wirkt bis zum Aufhebungszeichen. */ code

Semikolon
In ActionScript steht am Ende jedes Ausdrucks ein Semikolon. Wenn man vergisst, das Ende eines Ausdrucks mit Semikolon zu kennzeichnen, kann es vorkommen, dass mehrere Zeilen als eine zusammenhängende Anweisung interpretiert werden und somit syntaktische oder logische Fehler entstehen.

Klammern
Actionscript kenn drei verschiedene Arten von Klammern, die unterschiedliche Funktionen haben: Ausserdem werden normale Klammern auch zur Gruppierung von Rechenschritten benutzt, es gelten dieselben Regeln wie in der Mathematik - z.B. a = 1 - (2 + 3); --> a bekommt den Wert -4 zugewiesen __Generell gilt:__ Jede geöffnete Klammer muss auch wieder geschlossen werden!
 * **** Normale Klammern umschliessen Argumente, die einer Funktion oder Methode übergeben werden
 * **{ }** Geschweifte Klammern umschliessen Code Blöcke
 * **[ ]** Eckige Klammern werden zur Adressierung von Elementen in einem Array benutzt

Blöcke
Code-Blöcke werden durch geschweifte Klammern gekennzeichnet, sie umschliessen ein zusammenhängendes Stück Code. Innerhalb eines Blocks stehen beliebig viele Zeilen Code (Ausdrücke), die nacheinander von oben nach unten abgearbeitet werden. Blöcke können ineinander verschachtelt werden, zur besseren Übersicht wird dies durch Einrückung verdeutlicht.

Punktsyntax
In ActionScript bedeutet ein Punkt soviel wie "ist Teil von". Die Punktsyntax wird verwendet um Methoden oder Eigenschaften eines bestimmten Objekts (=Instanz) anzusprechen, und/oder zur Adressierung des Objekts mithilfe eines Pfades. code format="actionscript" meinObjekt.methode1([argument]); //relativer Pfad, ausgehend von da, wo der Code platziert ist meinObjekt.eigenschaft5 = Wert; //relativer Pfad, ausgehend von da, wo der Code platziert ist this.meinObjekt.eigenschaft5 = Wert; //genau wie oben, das this kann man meist weglassen _root.oberObjekt.unterObjekt.eigenschaft5 = Wert; //AS2, absoluter Pfad, ausgehend von der Hauptzeitleiste stage.oberObjekt.unterObjekt.eigenschaft5 = Wert; //AS3, _root gibt es nicht mehr, meist benutzt man stattdessen stage (=Bühne) code Das Ganze funktioniert also genau so, wie normale Pfade im Ordnersystem der Festplatte, nur mit Punkten statt Schrägstrichen, Objekten (meist MovieClips) statt Ordnern, Methoden oder Eigenschaften statt Dateien, und **_root** (AS2) oder **stage** (AS3) als Laufwerksbezeichnung: Eine Pfadangabe, die mit **stage** beginnt, bezieht sich auf die Hauptzeitleiste und stellt damit einen //absoluten// Pfad dar. Jeder andere Pfad ist //relativ//, d.h. er beginnt dort, wo der Code steht (**this**). Will man sich auf ein übergeordnetes Objekt beziehen, benutzt man **_parent** und kann sich so rückwärts durch die Hierarchie nach oben hangeln.
 * anstatt C://\\Ordner1\Unterordner3\Unterunterordner47\Datei7.doc//
 * //heisst es stage.myClip1_mc.subClip3_mc.part47_mc._rotation //

Trace
Beim Programmieren will man oft kurz überprüfen, ob bestimmte Variablen tatsächlich gerade die Werte haben, die man annimmt. Dafür gibt es den trace-Befehl, er nimmt einfach, was zwischen den Klammern steht, und gibt es in einem Textfenster (der sogenannten Konsole) aus. Will man mehrere Werte auf einmal ausgeben, dann verbindet man sie mit einem Plus. Wenn man auszugebende Buchstabenfolgen direkt innerhalb der trace-Klammern angeben will, muss man sie mit Anführungszeichen als String kennzeichnen. code format="actionscript" var alter:Number = 35; var meinName:String = "Nicolas Ruh"; trace(alter); //gibt aus: 35 trace(meinName); // gibt aus: Nicolas Ruh trace(meinName + " ist " + alter + " Jahre alt.") // was das wohl ausgibt? code