Flash CS3-Dokumentation |
|||
| Programmieren mit ActionScript 3.0 > ActionScript-Sprache und -Syntax > Syntax | |||
Die Syntax einer Sprache definiert einen Regelsatz, der beim Schreiben von ausführbarem Code eingehalten werden muss.
ActionScript 3.0 unterscheidet zwischen Groß- und Kleinschreibung. Bezeichner, die sich in der Groß-/Kleinschreibung unterscheiden, werden als unterschiedliche Bezeichner angesehen. Im folgenden Code werden beispielsweise zwei verschiedene Variable erstellt:
var num1:int; var Num1:int;
Der Punktoperator (.) ermöglicht den Zugriff auf die Eigenschaften und Methoden eines Objekts. Mit der Punktsyntax können Sie mit einem Instanznamen, gefolgt vom Punktoperator und dem Namen der Methode oder Eigenschaft auf eine Eigenschaft der Klasse oder Methode verweisen. Betrachten Sie die folgende Klassendefinition:
class DotExample
{
public var prop1:String;
public function method1():void {}
}
Mit der Punktsyntax können Sie mit dem Instanznamen auf die prop1-Eigenschaft und die method1()-Methode zugreifen. Der Instanzname wird im folgenden Code erstellt:
var myDotEx:DotExample = new DotExample(); myDotEx.prop1 = "hello"; myDotEx.method1();
Sie können die Punktsyntax beim Definieren von Paketen verwenden. Sie können den Punktoperator für Verweise auf verschachtelte Pakete verwenden. Beispielsweise befindet sich die EventDispatcher-Klasse in einem Paket namens „events", das wiederum in einem Paket namens „flash" verschachtelt ist. Der Verweis auf das events-Paket erfolgt mit dem folgenden Ausdruck:
flash.events
Der Verweis auf das EventDispatcher-Klasse erfolgt mithilfe dieses Ausdrucks:
flash.events.EventDispatcher
Die Schrägstrichsyntax wird in ActionScript 3.0 nicht unterstützt. Die Schrägstrichsyntax wurde in früheren Versionen von ActionScript zur Angabe des Zielpfads eines Movieclips oder einer Variablen verwendet.
Ein Literal ist ein Wert, der direkt im Code angezeigt wird. Bei den folgenden Beispielen handelt es sich um Literale:
17 "hello" -3 9.4 null undefined true false
Literale können auch zu zusammengesetzten Literalen zusammengefasst werden. Array-Literale werden in eckige Klammern ([]) eingeschlossen. Zum Trennen mehrerer Array-Elemente wird ein Komma ( , ) verwendet.
Ein Array-Literal kann zum Initialisieren eines Arrays verwendet werden. Die folgenden Beispiele zeigen zwei Arrays, die mit Array-Literalen initialisiert werden. Mit der Anweisung new können Sie das zusammengesetzte Literal als Parameter an den Konstruktor der Array-Klasse übergeben. Es ist jedoch auch möglich, Literalwerte beim Erstellen von Instanzen der folgenden ActionScript-Kernklassen direkt zuzuweisen: Object, Array, String, Number, int, uint, XML, XMLList und Boolean.
// new-Anweisung verwenden. var myStrings:Array = new Array(["alpha", "beta", "gamma"]); var myNums:Array = new Array([1,2,3,5,8]); // Literal direkt zuweisen. var myStrings:Array = ["alpha", "beta", "gamma"]; var myNums:Array = [1,2,3,5,8];
Literale können auch zum Initialisieren generischer Objekte verwendet werden. Ein generisches Objekt ist eine Instanz der Object-Klasse. Objekt-Literale sind in geschweiften Klammern ({}) eingeschlossen. Zum Trennen mehrerer Objekteigenschaften wird ein Komma ( , ) verwendet. Jede Eigenschaft wird mit einem Doppelpunkt (:) deklariert, der den Namen der Eigenschaft von ihrem Wert trennt.
Ein generisches Objekt erstellen Sie mit der Anweisung new und übergeben das Objekt-Literal als Parameter an den Konstruktor der Object-Klasse. Es ist jedoch auch möglich, das Objekt-Literal der deklarierten Instanz direkt zuzuweisen. Im folgenden Codebeispiel wird ein neues generisches Objekt erstellt und mit den drei Eigenschaften propA, propB und propC initialisiert, deren Werte auf 1, 2 und 3 gesetzt sind:
// new-Anweisung verwenden.
var myObject:Object = new Object({propA:1, propB:2, propC:3});
// Literal direkt zuweisen.
var myObject:Object = {propA:1, propB:2, propC:3};
Weitere Informationen finden Sie unter Grundlagen von Strings, Grundlagen von regulären Ausdrücken und Initialisieren von XML-Variablen.
Mit dem Semikolon (;) beenden Sie eine Anweisung. Wenn Sie das Semikolon weglassen, geht der Compiler davon aus, dass jede Codezeile eine einzelne Anweisung darstellt. Viele Programmierer haben sich angewöhnt, das Ende einer Anweisung mit einem Semikolon zu kennzeichnen. Der Code wird lesbarer, wenn Sie zum Beenden von Anweisungen Semikola verwenden.
Durch die Verwendung von Semikola können Sie zwar mehrere Anweisungen in eine Codezeile platzieren, jedoch wirkt sich dies meist negativ auf die Lesbarkeit des Codes aus.
In ActionScript 3.0 können Sie runde Klammern (()) auf drei Arten verwenden. Zunächst können Sie mit runden Klammern die Reihenfolge von Operationen in einem Ausdruck ändern. Operationen, die zwischen runden Klammern gruppiert sind, werden immer zuerst ausgeführt. Runde Klammern können beispielsweise verwendet werden, um die Reihenfolge der Operationen im folgenden Code zu ändern:
trace(2 + 3 * 4); // 14 trace( (2 + 3) * 4); // 20
Dann können Sie mit runden Klammern und dem Kommaoperator (,) eine Reihe von Ausdrücken auswerten und das Ergebnis des endgültigen Ausdrucks zurückzugeben. Diese Anwendung wird im folgenden Beispiel gezeigt:
var a:int = 2; var b:int = 3; trace((a++, b++, a+b)); // 7
Schließlich können Sie mit runden Klammern einen oder mehrere Parameter an Funktionen oder Methoden übergeben. Diese Anwendung wird im folgenden Code vorgestellt, in dem ein Stringwert an die trace()-Funktion übergeben wird:
trace("hello"); // hello
ActionScript 3.0-Code unterstützt zwei Arten von Kommentaren: einzeilige Kommentare und mehrzeilige Kommentare. Die Kommentarmechanismen ähneln denen in C++ und Java. Der Compiler ignoriert Text, der als ein Kommentar gekennzeichnet ist.
Einzeilige Kommentare beginnen mit zwei Schrägstrichen (//) und werden dann bis zum Ende der Zeile fortgeführt. Der folgende Code enthält einen einzeiligen Kommentar:
var someNumber:Number = 3; // ein einzeiliger Kommentar
Mehrzeilige Kommentare beginnen mit einem Schrägstrich und einem Sternchen (/*) und enden mit einem Sternchen und einem Schrägstrich (*/).
/* Dies ist ein mehrzeiliger Kommentar, der mehrere Codezeilen umfassen kann. */
Reservierte Wörter können im Code nicht als Bezeichner verwendet werden, da sie für die Verwendung durch ActionScript reserviert sind. Reservierte Wörter umfassen lexikalische Schlüsselwörter, die vom Compiler aus dem Namespace des Programms entfernt werden. Wenn Sie ein lexikalisches Schlüsselwort als Bezeichner verwenden, meldet der Compiler einen Fehler. In der folgenden Tabelle sind die lexikalischen Schlüsselwörter in ActionScript 3.0 aufgeführt:
|
as |
break |
case |
catch |
|
class |
const |
continue |
default |
|
delete |
do |
else |
extends |
|
false |
finally |
for |
function |
|
if |
implements |
import |
in |
|
instanceof |
interface |
internal |
is |
|
native |
new |
null |
package |
|
private |
protected |
public |
return |
|
super |
switch |
this |
throw |
|
to |
true |
try |
typeof |
|
use |
var |
void |
while |
|
with |
|
|
|
Es gibt noch eine kleine Gruppe von Schlüsselwörtern, die sogenannten syntaktischen Schlüsselwörter, die als Bezeichner verwendet werden können, in bestimmten Kontexten jedoch eine spezielle Bedeutung haben. In der folgenden Tabelle sind die syntaktischen Schlüsselwörter von ActionScript 3.0 aufgeführt:
|
each |
get |
set |
namespace |
|
include |
dynamic |
final |
native |
|
override |
static |
|
|
Darüber hinaus gibt es verschiedene Bezeichner, die manchmal als für zukünftige Verwendung reservierte Wörter bezeichnet werden. Diese Bezeichner sind nicht durch ActionScript 3.0 reserviert. Einige von ihnen werden jedoch in Software, in der ActionScript 3.0 integriert ist, als Schlüsselwörter behandelt. Viele dieser Bezeichner können Sie in Ihrem Code verwenden. Dennoch sollten Sie dies vermeiden, da sie in einer zukünftigen Version als Schlüsselwort verwendet werden könnten.
|
abstract |
boolean |
byte |
cast |
|
char |
debugger |
double |
enum |
|
export |
float |
goto |
intrinsic |
|
long |
prototype |
short |
synchronized |
|
throws |
to |
transient |
type |
|
virtual |
volatile |
|
|
ActionScript 3.0 unterstützt die const-Anweisung, mit der Sie Konstanten erstellen können. Konstante sind Eigenschaften mit einem festen Wert, der nicht geändert werden kann. Einer Konstanten wird nur einmal ein Wert zugewiesen, und die Zuweisung muss in unmittelbarer Nähe zur Deklaration der Konstanten erfolgen. Wenn Sie eine Konstante beispielsweise als Mitglied einer Klasse deklarieren, können Sie der Konstanten einen Wert nur als Teil der Deklaration oder innerhalb des Klassenkonstruktors zuweisen.
Im folgenden Code werden zwei Konstanten deklariert. Der ersten Konstante (MINIMUM) wird als Teil der Deklarationsanweisung ein Wert zugewiesen. Der zweiten Konstante (MAXIMUM) wird im Konstruktor ein Wert zugewiesen.
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
public function A()
{
MAXIMUM = 10;
}
}
var a:A = new A();
trace(a.MINIMUM); // 0
trace(a.MAXIMUM); // 10
Der Versuch, einer Konstanten mit einem anderen Verfahren einen Ursprungswert zuzuweisen, führt zu einer Fehlermeldung. Wenn Sie beispielsweise versuchen, den Ursprungswert von MAXIMUM außerhalb der Klasse zuzuweisen, tritt ein Laufzeitfehler auf.
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
}
var a:A = new A();
a["MAXIMUM"] = 10; // Laufzeitfehler
Die Flash Player-API definiert eine Vielzahl von Konstanten. Üblicherweise werden Konstanten in ActionScript in Großbuchstaben geschrieben und einzelne Wörter werden durch einen Unterstrich (_) voneinander getrennt. Die MouseEvent-Klassendefinition verwendet diese Namenskonvention z. B. für ihre Konstanten, jede Konstante steht dabei für ein Ereignis, das einer Mauseingabe zugeordnet ist:
package flash.events{public class MouseEvent extends Event{public static const CLICK:String = "click";public static const DOUBLE_CLICK:String = "doubleClick";public static const MOUSE_DOWN:String = "mouseDown";public static const MOUSE_MOVE:String = "mouseMove";...}}
Flash CS3
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/main/00000049.html