Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript-Referenzhandbuch > Elemente der ActionScript-Sprache > Operatoren > [] Array-Zugriffsoperator | |||
myArray = [ a0, a1,...aN ] myArray[ i ] = value myObject [ propertyName ]
Initialisiert ein neues Array oder ein neues multidimensionales Array mit den angegebenen Elementen (a0 usw.) bzw. greift auf Elemente in einem Array zu. Mit dem Array-Zugriffsoperator können Namen von Instanzen, Variablen und Objekten dynamisch gesetzt und abgerufen werden. Sie können den Operator auch zum Zugriff auf Objekteigenschaften verwenden.
Verwendung 1: Ein Array ist ein Objekt, dessen Eigenschaften (elements) durch eine Zahl (den so genannten index) angegeben werden. Beim Erstellen eines Arrays umgeben Sie die Elemente mit Array-Zugriffsoperatoren ([], also eckigen Klammern). Ein Array kann verschiedene Arten von Elementen enthalten. Das folgende Array namens employee weist beispielsweise drei Elemente auf: Das erste ist eine Zahl, das zweite und dritte sind Strings in Anführungszeichen ("):
var employee:Array = [15, "Barbara", "Jay"];
Sie können eckige Klammern ineinander verschachteln, um mehrdimensionale Arrays zu simulieren. Hierbei stehen bis zu 256 Verschachtelungsebenen zur Verfügung. Der folgende Code erstellt ein Array namens ticTacToe mit drei Elementen. Jedes Element ist ebenfalls ein Array mit drei Elementen:
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; // im Testmodus "Debuggen" > "Variablen auflisten" auswählen, // um eine Liste der Array-Elemente anzuzeigen
Verwendung 2: Sie können den Index eines jeden Elements mit eckigen Klammern ([]) umgeben, damit Sie direkt darauf zugreifen können. Auf diese Weise können Sie ein neues Element zu einem Array hinzufügen oder den Wert eines vorhandenen Elements ändern oder abrufen. Der erste Index eines Arrays lautet immer 0, wie aus folgendem Beispiel hervorgeht:
var my_array:Array = new Array(); my_array[0] = 15; my_array[1] = "Hello"; my_array[2] = true;
Mithilfe von eckigen Klammern ([]) können Sie wie folgt ein viertes Element hinzufügen:
my_array[3] = "George";
Sie können eckige Klammern ([]) auch verwenden, um auf ein Element in einem mehrdimensionalen Array zuzugreifen. Der erste Satz Klammern gibt das Element im ursprünglichen Array an, der zweite Satz das Element im verschachtelten Array. Die folgenden Codezeilen zeigen im Bedienfeld Ausgabe die Zahl 6 an.
var ticTacToe:Array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; trace(ticTacToe[1][2]);// Ausgabe: 6
Verwendung 3: Sie können den Array-Zugriffsoperator ([]) anstelle der Funktion eval() verwenden, um Werte für Movieclip-Namen oder beliebige Objekteigenschaften dynamisch einzustellen und abzurufen. Die folgende Codezeile zeigt im Bedienfeld Ausgabe die Zahl 6 an:
name["mc" + i] = "left_corner";
Verfügbarkeit: ActionScript 1.0, Flash Lite 2.0
myArray : Object - myArray - Der Name eines Arrays.
a0, a1,...aN : Object - a0,a1,...aN - Die Elemente in einem Array. Jeder beliebige native Typ bzw. jede Objektinstanz, einschließlich verschachtelter Arrays.
i : Number - i - Ein ganzzahliger Index größer oder gleich 0.
myObject : Object - myObject - Der Name eines Objekts.
propertyName : String - propertyName - Ein String mit dem Namen einer Eigenschaft des Objekts.
Object -
Verwendung 1: Eine Referenz auf ein Array.
Verwendung 2: Ein Wert aus dem Array. Entweder ein nativer Typ oder eine Objektinstanz (einschließlich einer Arrayinstanz).
Verwendung 3: Eine Eigenschaft des Objekts. Entweder ein nativer Typ oder eine Objektinstanz (einschließlich einer Arrayinstanz).
Das folgende Beispiel veranschaulicht zwei Möglichkeiten zum Erstellen eines neuen leeren Array-Objekts. In der ersten Zeile werden eckige Klammern ([]) verwendet:
var my_array:Array = []; var my_array:Array = new Array();
Im folgenden Beispiel wird ein Array namens employee_array erstellt. Mithilfe der Anweisung trace() werden die Elemente an das Bedienfeld Ausgabe gesendet. In der vierten Zeile wird ein Element im Array geändert, und in der fünften Zeile wird das geänderte Array an das Bedienfeld Ausgabe gesendet:
var employee_array = ["Barbara", "George", "Mary"]; trace(employee_array); // Ausgabe: Barbara,George,Mary employee_array[2] = "Sam"; trace(employee_array); // Ausgabe: Barbara,George,Sam
Im folgenden Beispiel wird der Ausdruck in eckigen Klammern ("piece" + i) ausgewertet und das Ergebnis als Name der Variablen verwendet, die aus dem Movieclip my_mc abgerufen werden soll. Die Variable i muss sich dabei in der gleichen Zeitleiste befinden wie die Schaltfläche. Wenn die Variable i den Wert 5 aufweist, wird im Movieclip my_mc der Wert der Variablen piece5 im Bedienfeld Ausgabe angezeigt:
myBtn_btn.onRelease = function() {
x = my_mc["piece"+i];
trace(x);
};
Im folgenden Beispiel wird der Ausdruck in eckigen Klammern ausgewertet und das Ergebnis als Name der aus dem Movieclip name_mc abzurufenden Variablen verwendet:
name_mc["A" + i];
Wenn Sie mit der ActionScript-Schrägstrichsyntax aus Flash 4 vertraut sind, können Sie dies auch mithilfe der Funktion eval() erreichen:
eval("name_mc.A" & i);
Mithilfe des folgenden ActionScripts können Sie eine Schleife über sämtliche Objekte des Gültigkeitsbereichs von _root erstellen. Dies ist für ein Debugging sehr hilfreich:
for (i in _root) {
trace(i+": "+_root[i]);
}
Der Array-Zugriffsoperator ([]) kann auch auf der linken Seite einer Zuweisung eingesetzt werden, um die Namen von Instanzen, Variablen und Objekten dynamisch einzustellen:
employee_array[2] = "Sam";