![]() | HTMLWorld: Home | Hier werben | Impressum | |
|
|
|
|
|
|
|
Flash/ActionScript: Variablen in ActionScriptvon Marcus Engelhardt Variablen definieren
|
| Eigenschaft/Konstante | Beschreibung |
|---|---|
MAX_VALUE | Entspricht der Obergrenze des Wertebereichs von Zahlen |
MIN_VALUE | Entspricht der Untergrenze des Wertebereichs von Zahlen |
NaN | Entspricht dem Wert NaN (Not a Number) |
NEGATIVE_INFINITY | Entspricht der negativen Unendlichkeit |
POSITIVE_INFINITY | Entspricht der positiven Unendlichkeit |
| Methode | Parameter | Beispiel | Beschreibung |
|---|---|---|---|
toString() | 1. Numerische Basis (Zahl) | myNumber = 1.23456; | Gibt ein Number-Objekt auf Basis des numerischen Werts als Parameter (default: 10) als String zurück |
valueOf() | keine | myNumber = 01011; | Gibt des Grundwert des Number-Objekts zurück (hier interne Umwandlung) |
Strings sind geordnete Aneinanderreihungen von Buchstaben, Ziffern und Sonderzeichen, deren Länge seitens der Programmiersprache unbegrenzt ist, so dass diese im Prinzip lediglich durch den zur Verfügung stehenden Speicherplatz des Systems begrenzt wird.
Stringliterale können entweder von einfachen (single quoted) oder in doppelten Anführungsstrichen (double quoted) umschlossen notiert werden:
var myString;
myString = 'abcdefg'; //single quoted - Notation
myString = "abcdefg"; //double quoted - Notation
Die beiden verschiedenen Notationsmöglichkeiten haben im Grunde keinerlei unterschiedliche Wirkung. Da sie dazu dienen, den String syntaktisch zu begrenzen, dürfen sie selbst innerhalb eines Strings, welcher durch sie begrenzt wird, nicht ohne eine entsprechende Entwertung (Maskierung) vorkommen. Einfache Anführungsstriche dürfen allerdings in Strings, welche von doppelten Anführungsstrichen begrenzt werden, notiert werden. Ein Beispiel:
myString = 'Mein Bezeichner ist myString';
//Notation syntaktisch korrekt
myString = "Mein Bezeichner ist myString";
//Notation syntaktisch korrekt
myString = 'Mein Bezeichner ist 'myString'';
//Notation führt zu Fehler
myString = "Mein Bezeichner ist 'myString'";
//Notation syntaktisch korrekt
In einem String dürfen des Weiteren beliebig viele dieser oder anderer so genannter Steuerzeichen notiert werden, wobei folgende unterschieden werden:
\" doppeltes Anführungszeichen
\' einfaches Anrührungszeichen
\\ Backslash
\b Backspace (Rückschritt)
\e Escape-Sequenzen
\f Seitenvorschub
\n Zeilenvorschub (newline)
\r Wagenrücklauf (Carriage return)
\t horizontaler Tabulator
Sollen in einem String derartige Zeichenfolgen vorkommen, ohne dass sie die Wirkung des entsprechenden Steuerzeichens hervorrufen sollen, müssen diese mithilfe eines Backslashs (\) maskiert werden. Der Backslash selbst kann auf dieselbe Art und Weise maskiert werden (\\), so dass er als bloßes Zeichen im String ohne Steuerfunktion fungiert.
Strings können mithilfe der Operatoren + oder add miteinander verkettet werden, indem man alle zu verbindende Strings als Operanden notiert:
//Verkettung mit Operator +
myString1 = "Moritz";
myString2 = "Max und " + myString1 + " !";
//Verkettung mit Operator add
myString1 = "Moritz";
myString2 = "Max und " add myString1 add " !";
Mithilfe der Eigenschaften und Methoden des Objekts String lassen sich Stringliterale manipulieren. Dazu werden sie intern in ein solches Objekt überführt, dessen Eigenschaften und Methoden im Folgenden aufgelistet werden.
| Eigenschaft | Beispiel | Beschreibung |
|---|---|---|
length | myString = "String"; | Gibt die Länge des String-Objekts zurück; Ergebnis hier: 6 |
| Methode | Parameter | Beispiel | Beschreibung |
|---|---|---|---|
charAt() | 1. Index (Ganzzahl) | myString = "String"; | Gibt Zeichen zurück, welches sich an Position des Parameters befindet (Beginn bei 0); Ergebnis hier: n |
charCodeAt() | 1. Index (Ganzzahl) | myString = "String"; | Gibt Zeichenwert (ASCII) zurück, welcher dem des Zeichens an Position des Parameters entspricht (Beginn bei 0); Ergebnis hier: 105 |
concat() | 1. Beliebige Anzahl von Strings | myString = "String"; | Verkettet Wert des String-Objekts mit den Werten der Parameter; Ergebnis hier: Stringende |
fromCharCode() | 1. Beliebige Anzahl von ASCII-Werten (Ganzzahlen) | myString = "String"; | Verkettet Wert des String-Objekts mit String aus ASCII-Zeichen, welchen Parameter entsprechen; Ergebnis hier: String!? |
indexOf() | 1. Teilstring (String oder Ganzzahl) (2. Startindex für Suche (Ganzzahl)) | myString = "String"; | Durchsucht String-Objekt nach Teilstring und gibt den Index dessen erstes Vorkommens (bei Nichtvorkommen -1) zurück; bei Angabe eines Startindex wird erst ab diesem gesucht; Ergebnis hier: 3 |
lastIndexOf() | 1. Teilstring (String oder Ganzzahl) (2. Startindex für Suche (Ganzzahl)) | myString = "StringString"; | Durchsucht String-Objekt nach Teilstring und gibt den Index dessen letztes Vorkommens (bei Nichtvorkommen -1) zurück; bei Angabe eines Startindex wird erst ab diesem gesucht; Ergebnis hier: 9 |
splice() | 1. Startindex (Ganzzahl) (2. Endindex (Ganzzahl)) | myString = "String"; | Extrahiert aus String-Objekt eine Teilzeichenkette ab Startindex (Beginn 0) bis zum Ende des String-Objekts; optional kann der Index des letzten zu extrahierenden Zeichens angegeben werden, Ergebnis hier: ri |
split() | 1. Seperator (String) (2. maximale Anzahl der Elemente des Arrays (Ganzzahl)) | myString = "String_1"; | Zerteilt das String-Objekts anhand des Seperators in mehrere Teilstrings und gibt diese als Elemente eines Arrays zurück; optional kann dessen max. Länge angegeben werden; Ergebnis hier: myArray = ["String","1"]; |
substr() | 1. Startindex (Ganzzahl) (2. Länge des Extrakts (Ganzzahl)) | myString = "String"; | Extrahiert aus String-Objekt eine Teilzeichenkette ab Startindex (Beginn 0) bis zum Ende des String-Objekts; optional kann die Länge der Teilzeichenkette angegeben werden, Ergebnis hier: tri |
substring() | 1. Startindex (Ganzzahl) 2. Endindex (Ganzzahl) | myString = "String"; | Extrahiert aus String-Objekt eine Teilzeichenkette ab Startindex (Beginn 0) bis zum Endindex. Das Zeichen bei Endindex wird dabei nicht in den Teilstring mit aufgenommen, Ergebnis hier: tr |
toLowerCase() | keine | myString = "String"; | Wandelt alle Großbuchstaben im Stringobjekt in die entsprechenden Kleinbuchstaben um und gibt den erhaltenen String zurück; Ergebnis hier: string |
toUpperCase() | keine | myString = "String"; | Wandelt alle Kleinbuchstaben im Stringobjekt in die entsprechenden Großbuchstaben um und gibt den erhaltenen String zurück; Ergebnis hier: STRING |
Die einzigen beiden möglichen Werte von Boolean (boolesche Werte) sind true und false. Darüber hinaus interpretiert ActionScript die numerischen Werte 1 im booleschen Kontext als true sowie 0 in selbigem als false. Der Datentyp wird aufgrund dieser Eigenschaft vorzugsweise zum Auswerten von Ausdrücken mit logischen Operatoren (boolesche Ausdrücke), d.h. zum Festellen derer Wahrheitswerte, sowie für Kontrollstrukturen verwendet. Zur Verwendung sei folgendes Beispiel angeführt:
var myBoolean = false;
var myNumber1 = 1;
var myNumber2 = 2;
if(myNumber1 < myNumber2)
//Ergebnis d. booleschen Ausdrucks ist true -> Ausführung
{
trace(myNumber1 + " ist kleiner als " + myNumber2);
/*
Im Folgenden ist das Ergebnis des booleschen Ausdrucks
false, so dass nachfolgende Anweisung nicht ausgeführt wird.
*/
if(myBoolean == true) trace("myBoolean hat den Wert wahr");
}
Das Boolean-Objekt besitzt die folgenden beiden Methoden:
| Methode | Parameter | Beispiel | Beschreibung |
|---|---|---|---|
toString() | keine | myBoolean = true; | Gibt den Wert des Boolean-Objekts als String zurück |
valueOf() | keine | myBoolean = 1 < 2; | Gibt den Grundwert (Wahrheitswert) des Boolean-Objekts zurück |
Dieser Datentyp kann nur einen Wert, nämlich null, speichern, welcher ein Synonym für einen nicht vorhandenen Wert darstellt. Aufgrund dessen kann er einer Variablen zugeordnet werden, welche zu diesem Zeitpunkt keinen brauchbaren Wert enthalten soll. In diesem Zusammenhang können beispielsweise fehlende Werte für die erwarteten Parameter einer Funktion ersetzt werden, um den Aufruf der Funktion im strikten Sinne dennoch gewährleisten zu können:
var myNumber = 1;
myFunction(myNumber,null);
function myFunction(myp1,myp2)
{
trace("Parameter 1: " + myp1 + " und Parameter 2: " + myp2);
}
Der Datentyp wird in der Regel im Zusammenhang mit Variablen verwendet, welche nur deklariert, aber nicht mit einem Wert initialisiert wurden. Ein Beispiel:
var myNumber;
if(myNumber == undefined)
trace("myNumber wurde nicht initialisiert!");
Ein Array ist ein vordefiniertes Objekt, welches wiederum eine Aneinanderreihung von variablen Werten darstellt, deren Anzahl vonseiten der Scriptsprache unbegrenzt ist. Einfache Arrays können dabei stets als Vektoren aufgefasst werden.
Um ein neues Array-Objekt zu erstellen, kann man entweder den Array-Zugriffsoperator ([]) oder den Konstruktur des Array-Objekts, d.h. new Array(), verwenden. Das Array-Objekt wird dann mit dem entsprechend angegebenen Bezeichner referenziert:
var myArray = [1,2,3,4,5,6];
//Erzeugung eines Arrays mit Elemente 1 - 6
var myArray = new Array(1,2,3,4,5,6);
//Erzeugung eines Arrays mit Elemente 1 - 6
var myArray = new Array(6);
//Erzeugung eines Arrays mit 6 Elementen (Wert undefined)
Bei diesem Beispiel gilt es zu beachten, dass die letzte Anweisung durch Angabe eines numerisches Werts als Operatorargument ein Array entsprechender Länge, nicht aber ein Array mit einem Element des Wertes, erzeugt. Der Bezeichner auf das jeweilige Arrayobjekt lautet in jedem Beispiel myArray.
Array-Objekte sind zudem auch nicht typisiert, da bei deren Erzeugung auch kein Datentyp für dessen Elemente, wie es beispielsweise bei den Reihungen in Java üblich ist, angegeben werden muss. So können Arrays auch problemlos Elemente unterschiedlichen Datentyps enthalten:
var myArray = [1,"String1",2,3,"String2"];
Es können auch leere Arrays, d.h. Array-Objekte ohne vordefinierte Elemente, erzeugt werden. Sämtliche Array-Elemente enthalten dann den Wert undefined. Ein Beispiel:
var myArray = [];
var myArray = new Array();
Aufgrund der Tatsache, dass sämtliche Arrayelemente indiziert, also durchnummeriert, sind, kann man auf diese unter Anwendung des Array-Zugriffsoperators ([]) und der entsprechenden Nummer zugreifen. Das erste Array-Element hat dabei jedoch den Index 0, so dass der Index des letzten Arrayelements der Länge des Arrayobjekts minus 1 entspricht. Ein Beispiel:
var myArray = [1,2,3,4,5,6];
trace(myArray[1]);
//Gibt den Wert 2 aus
trace(myArray[5]);
//Gibt den Wert 6 aus
trace(myArray[6]);
//Gibt den Wert undefined aus, da Element nicht definiert ist
Array-Objekte sind in ActionScript stets frei erweiterbar. Dies trifft auch auf Arrays, welche mit einer vordefinierten Anzahl von Elementen erzeugt wurden (siehe oben), zu. Neue Arrayelemente werden wiederum unter Angabe des Array-Zugriffsoperators ([]) und des gewünschten neues Indexes dadurch erzeugt, dass man ihnen einfach den entsprechenden Wert zuweist:
var myArray = new Array(1);
myArray[0] = 1;
//Belegung des bereits definierten Arrayelements
//(Index 0) mit Wert 1
myArray[1] = "String1";
//Erzeugung eines neuen Arrayelements (Index 1)
//mit Wert "String1"
Das Array-Objekt stellt in ActionScript die nachfolgenden Eigenschaften und Methoden zur Verügung.
| Eigenschaft | Beispiel | Beschreibung |
|---|---|---|
length | myArray = new Array(1,2,3,4,5); | Gibt die Länge des Array-Objekts zurück; Ergebnis hier: 5 |
| Methode | Parameter | Beispiel | Beschreibung |
|---|---|---|---|
concat() | 1. Beliebige Anzahl von Elementen, Zahlen oder Strings | myArray1 = [1,2]; | Verkette die Elemente der Parameter mit dem Array-Objekt; Ergebnis hier: myNewArray = [1,2,3,4,5,6]; |
join() | 1. Seperator (String) | myArray = ["S","t","r","i","n","g"]; | Fügt die Elemente eines Arrays-Objekts zu einem String zusammen, wobei der String des Parameters als Trennung dient; Ergebnis hier: S_t_r_i_n_g |
pop() | keine | myArray = [1,2,3,4,5]; | Entfernt das letzte Element des Array-Objekts und gibt dessen Wert zurück; Ergebnis hier: 5 |
push() | 1. Beliebige Anzahl von Werten für anzuhängende Elemente | myArray = [1,2,3,4,5]; | Fügt die Werte der Parameter dem Array-Objekt als Elemente an und gibt dessen neue Länge zurück; Ergebnis hier: 7 |
reverse() | keine | myArray = [1,2,3,4,5]; | Dreht die Reihenfolge der Elemente des Array-Objekts um; Ergebnis hier: myArray = [5,4,3,2,1]; |
shift() | keine | myArray = [1,2,3,4,5]; | Entfernt das erste Element des Array-Objekts und gibt dessen Wert zurück; Ergebnis hier: 1 |
slice() | 1. Startindex (Ganzzahl) 2. Endindex (Ganzzahl) | myArray = [1,2,3,4,5]; | Extrahiert Elemente von Startindex (Beginn 0) bis Endindex aus Array-Objekt und gibt diese als Array zurück; Ergebnis hier: mySliced = [2,3]; |
sort() | (1. Funktion, welche Reihenfolge der Sortierung beschreibt) | myArray = ["cd","a","cc"]; | Sortiert die Elemente des Array-Objekts nach durch Rückgabewert der Sortierungsfunktion vorgegebene Weise, wobei 3 numerische Rückgabewerte möglich sind. Für zwei Elemente A, B gilt dann: 0: A = B 1: A nach B -1: A vor B Ergebnis hier: myArray = ["a","cc","cd"]; |
sortOn() | 1. Wert für Arrayfeld, dass als Sortierwert dienen soll | myArray = [{ID: 2, Name: "nm2"},{ID: "1", Name: "nm1"}]; | Sortiert die Elemente eines Array-Objekts (ass. Array) nach dem durch den Parameter festgelegten Feld; Ergebnis hier: myArray[0][ "Name"] = "nm1"; |
splice() | 1. Startindex (2. Anzahl der löschenden Elemente) (3. Array von Elementen, welche (anstelle der gelöschten) eingefügt werden sollen) | //Zweites Element durch 4 ersetzen | Löscht Elemente des Array-Objekts ab Startindex, wobei die Anzahl der gelöschten Elemente mit 2. Parameter festgelegt wird, und ersetzt sie ggf. durch die Elemente des 3. Parameters. Wird der 2. Parameter weggelassen, werden alle Elemente ab Startindex gelöscht. Wird für 2. Parameter Wert 0 übergeben, wird kein Element gelöscht; Ergebnis hier: myArray = [1,4,3]; |
toString() | keine | myArray = [1,2,3,4,5]; | Gibt die Elemente des Arrays-Objekts verkettet durch Kommata als Stringwert zurück; Ergebnis hier: 1,2,3,4,5 |
unshift() | 1. Beliebige Anzahl von Werten für anzuhängende Elemente | myArray = [3,4,5]; | Fügt die Werte der Parameter als Elemente am Anfang des Array-Objekts an und gibt dessen neue Länge zurück; Ergebnis hier: 5 |
Um komplexere Datenstrukturen zu realisieren, ist es oft sinnvoll, ein Array selbst mit anderen zu verschachteln. Auf diese Weise lassen sich im Prinzip Arrays beliebig hoher Dimensionalität, d.h. Schachtelung, erzeugen, wobei auf deren Elemente durch mehrfache Notation des Array-Zugriffsoperators ([]) zugegriffen werden kann.
Im Falle eines zweidimensionalen Arrays, welches eine matrixähnliche Struktur darstellt, kann auf dessen Elemente durch Angabe der Zeilen- sowie Spaltenummer, d.h. der entsprechenden Indizes, zugegriffen werden. Ein Beispiel:
//Erzeugung eines zweidimensionalen Arrays durch
//Aufzählung seiner Elemente
var myArray = [
[1,2,3,4,5,6],
[7,8,9,10,11,12]
];
trace(myArray[1][4]);
//Gibt Wert des Elements der zweiten Zeile (erster Index 1)
//und der fünften Spalte (zweiter Index 4), also 11, aus
In diesem Beispiel könnte das zweidimensionale Array auch erzeugt werden, indem man für dessen Elemente die Referenzen auch die entsprechenden Arrayobjekte angibt:
var mySubArray1 = [1,2,3,4,5,6];
//Erzeugung eines Arrays mit den Werten 1 - 6
var mySubArray2 = [7,8,9,10,11,12];
//Erzeugung eines Arrays mit den Werten 7 - 12
//Erzeugung eines zweidimensionalen Arrays mit
//Referenzen auf die oben erzeugten Arrays
var myArray = [
mySubArray1,
mySubArray2
];
Arrays sind wie bereits erwähnt Objekte, so dass assoziative Arrays im Prinzip sehr einfach dadurch konstruiert werden können, dass man Eigenschaften für das (Array-)Objekt festlegt. Auf diese Weise entsteht fiktiv eine Reihung aus Paaren von Wert und eines dazu gehörigen Schlüssels. Die Länge eines assoziativen Arrays ist natürlich ebenfalls lediglich durch den maximal verfügbaren Speicherplatz des Systems begrenzt.
Die einzelnen Werte des Arrays werden nicht über einen Index, sondern über ihren zugeordneten Schlüssel angesprochen. Dies erfolgt wiederum entweder mittels des Array-Zugriffsoperators ([]) oder mittels des Punktoperators (.). Ein Beispiel:
var myArray = new Array();
//Verwendung des Array-Zugriffsoperators
myArray["Tag"] = 12;
myArray["Monat"] = "August";
//Verwendung des Punktoperators
myArray.Tag = 12;
myArray.Monat = "August";
Letztere Methode zeigt deutlich, dass hier im Grunde lediglich die Eigenschaften eines Objekts manipuliert werden. Aus diesem Grund kann jedes beliebige Objekt als assoziatives Array behandelt werden, so dass man auch konsequent anstelle eines Array-Objekts ein leeres Object-Objekt erzeugen könnte. Folgendes Beispiel führt daher zum selben Ergebnis wie die obigen beiden:
var myArray = new Object();
myArray.Tag = 12;
myArray.Monat = "August";
Fässt man die so erzeugten assoziativen Arrays als einelementig auf, so können natürlich auch mehrelementige Arrays von assoziativen Arrays (verschachtelt) erzeugt werden. Diese werden dann jeweils von geschweiften Klammern eingeschlossen und können durch zusätzliche Angabe des Arrayzugriffoperators ([])mit ihrem jeweiligen Index angesprochen werden. Ein entsprechend erweitertes Beispiel:
var myArray = new Array(
{Tag: 1, Monat: "Januar"},
{Tag: 1, Monat: "Februar"}
);
myArray[1].Tag = 2;
myArray[1]["Monat"] = "Januar";
Der Datentyp Movieclip zählt zu den Referenzdatentypen und ist flashspezifisch. Movieclips sind wie bereits erwähnt nicht anderes als Symbole aus der Bibliothek und verweisen daher auf Grafiken. Instanziert man ein Movieclipsymbol, so erzeugt man im Prinzip ein Objekt der Klasse Movieclip und kann mithilfe des Punktoperators (.) auf eine Fülle seiner Eigenschaften, Methoden, etc. zugreifen. Ein Beispiel für den Movieclip mit dem Bezeichner (Instanznamen) myMovieClip:
//Eigenschaften des Objekts manipulieren
myMovieClip._width = 100;
//Verändert die Größe der Instanz auf 100px
//Methoden des Objekts aufrufen
myMovieClip.stop();
//Stoppt die Wiedergabe der Instanz
Eine sehr gute Übersicht über die Eigenschaften sowie Methoden des Movieclip - Objekts findet sich in der Flash beiliegenden ActionScript - Referenz, wobei einige derer im weiteren Verlauf noch gesondert erwähnt werden.
|
|
| « zurück | weiter » |
| Wie erstelle ich eine Tag-Wolke aus Flash? von Suesse_Muse | |
| Einbindung großer, interaktiver Flash Elemente in HTML von Varian S. | |
| Flash offline in HTML-Seite abspielen von eckerlin | |
| Flas Wettbewerb. 500 Euro zu gewinnen. von lsc | |
| Zufälliges Laden verschiedener SWF-Filmchen von Grasshüpfer | |
| fertige Video in homepage einbauen von Parfait | |
| Pfadanimation von webdesignerin | |
| suche Actionskript für Link in iframe öffnen? von matchless | |
| Re: Ist Flash dafür geeignet? von Sir Quicksand |
Flash/ActionScript
| Autor: | Jan Winkler | ||
| Bewertung: | |||
| Community: | 14 Beiträge im Flash/ActionScript Forum |
Navigation
Doku-Inhalt
| Wie erstelle ich eine Tag-Wolke aus Flash? von Suesse_Muse | ||
| Einbindung großer, interaktiver Flash Elemente in HTML von Varian S. | ||
| Flash offline in HTML-Seite abspielen von eckerlin | ||
| Flas Wettbewerb. 500 Euro zu gewinnen. von lsc | ||
| Zufälliges Laden verschiedener SWF-Filmchen von Grasshüpfer | ||
| fertige Video in homepage einbauen von Parfait | ||
| Pfadanimation von webdesignerin | ||
| suche Actionskript für Link in iframe öffnen? von matchless | ||
| Re: Ist Flash dafür geeignet? von Sir Quicksand |
|
|
|
|
|
|
Startseite | Kontakt | Über uns | Impressum | Datenschutz | Was sind das für grüne Links? Unsere Angebote: HTML World | Downloads World | IT-News World | HSDPA World | Traveling World | Weather World | HSDPA | Internet Stick |