P ALIGN="LEFT">woche=new Array();

woche[0] = "Sonntag";

woche[1] = "Montag";

woche[2] = "Dienstag";

woche[3] = "Mittwoch";

woche[4] = "Donnerstag";

woche[5] = "Freitag";

woche[6] = "Samstag";

wochentag=new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag","Samstag");

Hier werden 2 Arrays (woche und wochentag) auf 2 unterschiedliche Arten erzeugt, die im Endeffekt jedoch die gleichen Elemente beinhalten.

Im Beispiel woche wird zuerst ein leeres Feld mit 0 Elementen erzeugt. Anschließend werden 7 Elemente zugewiesen, dabei wird ein numerischer Index verwendet. woche[0]="Sonntag"; etc. Man kann stattdessen auch eine Zeichenfolge als Index verwenden z.B. mitschueler["Bernd"]="Weichei";

Im Beispiel wochentag wird ein Feld mit 7 Elementen erzeugt, die mit den als Parameter übergebenen Elementen "Sonntag","Montag", ...bis "Samstag"gefüllt sind.

Diese Elemente werden der Reihe nach einem numerischen Index bei 0 beginnend zugewiesen, das heißt wochentag[0]="Sonntag"; wochentag[1]="Montag";.....etc.

Wie gesagt im Endeffekt kommt es auf gleiche raus, woche und wochentag wurden die gleichen Elemente zugewiesen.

Okay, wozu das Ganze, auf der nächsten Seite folgt ein praktisches Beispiel.

new Array()

datum = new Date();

tag = datum.getDay();

wochentag=new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag","Samstag");

ausgabe = wochentag[tag];

Erinnern wir uns an das Datum Objekt näheres siehe SWF Beispiel Datum.

In diesem Beispiel wird der Variablen tag ein numerischer Wert für den aktuellen Wochentag übergeben, beginnend bei 0 für Sonntag, 1 für Montag,...etc. bis 6 für Samstag.

Dieser Wert wird dem Array wochentag zugewiesen wochentag[tag] und so das entsprechende Element der Variablen ausgabe übergeben. ausgabe = wochentag[tag];

Hier noch eine weitere Schreibweise eine Array zu definieren. Die eckigen Klammern erhalten die Elemente des Arrays.

new Array ()

zahlen = new Array();

for (i=0; i<10; i++) {

   zahlen[i] = i+1;

}

Die Elemente eines Arrays können auch numerische Werte sein. Hier wird zunächst ein Array zahlen erzeugt. zahlen = new Array();

Die Werte werden dann in einer for Schleife zugewiesen.

Die Schleife wird solgange ausgeführt, wie die Bedingung erfüllt ist.

for(Zählvariable, Bedingung, Zählmuster){

auszuführende Anweisung solange Bedingung erfüllt ist;

}

Die Variable i beginnt mit dem Wert 0, i=0 dann folgt die Bedingung i<=10

dann kommt das Zählmuster, die beiden ++ bedeuten, daß nacheinander der Wert 1 hinzugefügt wird, also das gleiche wie i=i+1 näheres dazu SWF Beispiel Variable.

Die Anwweisung zahlen[i]=i+1 folgt in geschweiften Klammern.

dadurch entstehen 10 Elemente:

zahlen[0]=1;

zahlen[1]=2;

.....bis

zahlen[9]=10;

Array / for Schleife

Die Eigenschaft length des erzeugten Arrays gibt die Anzahl der enthaltenen Elemente an. Die Zahl erhöht sich automatisch, wenn einem bisher nicht vorhandenen Feldelement ein Wert zugeweisen wird. Beispiel :

arrname =new Array("Bernd", "Dieter","Klaus","Helmut");

arrname[6]="Walter";

Zunächst wird ein Feld mit 4 Elementen (arrname[0] und arrname[1] arrname[2] und arrname[3]) erzeugt; damit ist arrname.length gleich 4. Mit der nächsten Anweisung wird dem bisher nicht vorhandenen Element arrname[6] ein Wert zugewiesen. Dadurch wird automatisch arrname.length auf 7 erhöht; es entstehen darüber hinaus die Elemente arrname[4] und arrname[5] mit undefiniertem Inhalt.

Mit splice kann man Elemente löschen, arrname.splice(startnummer, anzahl)

Man gibt die Startnummer und die Anzahl der zu löschenden Elemente in Klammern an.

Die Anzahl  der Elemente wird verringert. Es sei denn man gibt danach neue Elemente an, dann werden die gelöschten Elemente durch die neuen ersetzt.

arrname.splice( 1, 2, "Beate","Werner");

arrname = new Array("Bernd", "Dieter","Klaus","Helmut");

arrname.splice( 1, 2, "Beate","Werner");

arrname.splice( 0, 2);

laenge = "arrname.length";

Zufallszahlen

Anschließend wird die Filmsequenz mit Instanznamen movie anzahlmäßig dupliziert.

Dann wird eine Zufallszahl aus der Anzahl-i erzeugt, zufallszahl = random(_root.anzahl-i); das bedeutet, die Anzahl wird bei jedem Schleifendurchlauf um 1 verringert, dazu später mehr.

Nehmen wir mal an, die Zufallszahl wäre beim ersten Schleifendurchlauf 4. Dann wird das Element von zahlen[3] (nämliche 4) der variablen movienr des gerade erzeugten movieclips zugewiesen. _root["movie"+i].movienr = zahlen[zufallszahl]; Das Element ist nur am Anfang 4, denn anschließend wird dieses Element aus dem Array gelöscht zahlen.splice(zufallszahl, 1);,  das heißt zahlen[3] bekommt dann das Element 5 zugewiesen und die Länge des Arrays verringert sich um 1. Daher wird beim nächsten Schleifendurchlauf die Zufallszahl auch aus der Menge Anzahl-1 gebildet. Wäre beim nächsten Schleifendurchlauf die Zufallszahl wieder 4 würde nun der variablen movienr die Zahl 5 zugewiesen, denn 4 wurde zuvor gelöscht.

for (i=0; i<_root.anzahl; i++) {

   duplicateMovieClip (_root.movie, "movie"+i, i);

   zufallszahl = random(_root.anzahl-i);

   _root["movie"+i].movienr = zahlen[zufallszahl];

   zahlen.splice(zufallszahl, 1);

}

zahlen = new Array();

for (i=0; i<(_root.anzahl); i++) {

   zahlen[i] = i+1;

}

Hier wird jedem duplizierten movieclip eine zufällige Zahl zugewiesen, die jeweils nur einmal vorkommt. Zuerst wird ein Array Zahlen mit der eingegebenen anzahl an Elementen erstellt.

zeichenkette = "Michael, Albers, Dortmund, mail@pastorpixel.de";

daten = zeichenkette.split(",");

for (i=0; i<daten.length; i++) {

this.createTextField("anzeige"+i, i, 20, 20*i+80, 200, 20);

_root["anzeige"+i].text = daten[i];

}

In der Variablen namens zeichenkette stehen Worte  durch Kommata getrennt.

Datenbankinhalte kann man mit solchen Zeichenketten darstellen.

Durch string.split(',') wird daraus ein Array. Als Argument der split- Funktion wird das Trennzeichen erwartet. Da es ein String ist, kommt es in Anführungsstriche.

Es entsteht also ein Array

daten[0]="Michael";

daten[1]="Albers";

etc.

In der For Schleife werden Textfelder erzeugt, die das Array anzeigen. Siehe dazu meinen Tipp Textobjekt.

Array string.split()array.join() array.toString()

haustiere=new Array("Hund","Katze","Maus","Schwein","Pferd","Kuh");

anzeige1=haustiere.join();

anzeige2=haustiere.join(">");

Mittels join("Trennzeichen") kann man die Elemente eines Arrays zu einem String zursammenfügen. Als Argument wird ein Trennzeichen erwartet. Gibt man kein Argument an, wird das Komma als Trennzeichen gesetzt.

zahlen=new Array(6,3,4,1,5,2);

anzeige3=zahlen.toString();

Mit der array.toString() Funktion werden die Werte eines Arrays  in eine String (Zeichenkette) umgewandelt und durch Kommata getrennt angzeigt.

Der Unterschied zwischen String und numerischen Werten wird im Tipp Variablen erklärt.

array.concat()

haustiere=new Array("Hund","Katze","Maus","Schwein","Pferd","Kuh");

vögel=new Array("Amsel", "Drossel", "Fink", "Star");

tiere=vögel.concat(haustiere);

anzeige1=haustiere.join();

anzeige2=vögel.join();

anzeige3=tiere.join();

Mittels concat() werden die Elemente zweier Arrays zu den Elementen eines neuen Arrays zusammengefügt. Die ursprünglichen Arrays bleiben erhalten.

Die join() Funktionen habe ich hier nur benutzt, um das Ergebnis anzuzeigen.

Um mehrere Arrays mittels concat() zusammenfügen, gibt man die Arrays als weitere Argumente in der Funktion concat() ein.

tiere=vögel.concat(haustiere, fische);

array.pop()

haustiere=new Array("Hund","Katze","Maus","Schwein","Pferd","Kuh");

haustiere.pop();

anzeige1=haustiere.join();

//

vögel=new Array("Amsel", "Drossel", "Fink", "Star");

anzeige2 = vögel.pop();

Mittels pop() wird  das letzte Element eines Arrays gelöscht.  Wie man unter anzeige2 sieht, wird das gelöschte Element  zurückgegeben.

Das Gegenstück dazu ist shift(), welche das erste Element löscht, die anderen Elemente rücken nach, siehe 3 Seiten weiter.

array.push()

fische=new Array("Hai","Karpfen","Hecht","Forelle");

fische.push("Butt","Flunder");

anzeige1 = fische.push("Markrele");

anzeige2=fische.join();

Mittels push() werden Elemente hinten angehängt.

Wie man unter anzeige1 sieht, gibt die Funktion push() die Anzahl der Elemente des Arrays zurück.

array.reverse()

zahlen=new Array(1,2,3,4,5);

zahlen.reverse();

anzeige1=zahlen.join();

Mittels reverse() wird die Reihenfolge der Arrayelemente umgekehrt.

array.shift() array.unshift()

fische=new Array("Hai","Karpfen","Hecht","Forelle");

anzeige1 = fische.shift();

anzeige2=fische.join();

Mittels shift() wird das erste Element eines Arrays gelöscht.

Wie man unter anzeige1 sieht, übergibt die Funktion shift()  das gelösche Element.

Die Funktion kann selbstverständlich auch ohne eine Variable aufgerufen werden.

fische.shift();

pflanzen=new Array("Rose", "Nelke");

pflanzen.unshift("Narzisse", "Kornblume","Lilie");

anzeige3=pflanzen.join();

Mittles unshift() werden Elemente im Array vorne angehängt. Der Rückgabewert ist die neuen Länge des Arrays.

array.sort()

freunde=new Array("Charly", "Emil", "Anton", "Detlef", "Bernd");

freunde.sort();

zahlen=new Array(6,3,4,1,5,2);

zahlen.sort();

anzeige1 = freunde.join();

anzeige2 = zahlen.join();

Mittels sort() werden die Elemente eines Arrays sortiert. Verwendet man diese Funktion ohne Parameter wird das Array unter Verwendung des Vergleichsoperators < sortiert.

Im ersten Beispiel alphabetisch, im zweiten Beispiel numerisch.

var clips=[clip1,clip2,clip3,clip4];

function compareXpos(element1, element2) {

if (element1._x<element2._x) {

return -1;

} else if (element1._x> element2._x) {

return 1;

} else {

return 0;

}

}

clips.sort(compareXpos);

anzeige1=clips.join();

Als Argument von sort() kann man eine Vergleichsfunktion eingeben, die bestimmt wie jeweils 2 Elemente sortiert werden. Sie sollte 2 Elemente als Argumente entgegennehmen. Sie sollte -1 zurückgeben, wenn das erste Element vor das zweite sortiert wird. 1 liefern wenn das erste Element hinter das zweite sortiert wird und 0 zurückgeben, wenn die Elemente nicht neu geordnet werden.

In diesem Beispiel werden die Movieclips clip1, clip2, clip3, clip4. nach ihrer horizontalen Position im Array sortiert.