| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jun 2006
Beiträge: 3
| Array-Problem - Dringend Hilfe gesucht
Ich versuche gerade ein Spiel zu programmieren und scheitere im Moment an einem Verständnisproblem. Ich brauche ein System, mit dem ich automatisch Namen generieren kann, die aus Buchstaben und Zahlen bestehen. Code:
onClipEvent (load) {
// Boxbezeichnung;
box = new Array;
box[0] = "A";
box[1] = "B";
box[2] = "C";
box[3] = "D";
box[4] = "E";
box[5] = "F";
box[6] = "G";
box[7] = "H";
box[8] = "I";
// Reihenbezeichnung;
field = new Array;
field[0] = 1;
field[1] = 2;
field[2] = 3;
field[3] = 4;
field[4] = 5;
field[5] = 6;
field[6] = 7;
field[7] = 8;
field[8] = 9;
// Erstellung der Feldnamen;
for (z=0; z<9; z++) {
for (y=0; y<9; y++) {
name = new Array;
numero = new String(box[z] + field[y]);
name.push(numero);
trace (numero);
}
}
} Der Code befindet sich auf einem leeren MC. Die Boxen sollen so bezeichnet werden: "A1", "A2" ... "A9", "B1" ... bis zur letzten Variante "I9". Beim Ausführen des Scripts zeigt der trace-Befehl wunderbar, was ich haben will. Allerdings schreib er die 81 Werte nicht in den Array. Warum nicht. Wie kann ich erreichen, dass die Werte in meinen name-Array geschrieben werden? Mit 81 Werten im Array? Und gäbe es eine andere, bessere Methode, einen solchen Array zu erstellen? Das Ziel sieht ja so aus: name[0][0] = name[box[0]] [field[0]] = equivalent to A1 name[0][1] = name[box[0]] [field[1]] = equivalent to A2 ... name[9][9] = name[box[9]] [field[9]] = equivalent to I9 Danke für die Hilfe im Voraus. SunnySideUp |
| | |
| | #2 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
Hi. PHP-Code: Übrigens stellt name[0][0] ein zweidimensionales Array dar. Aber Du willst, so weit ich das gesehen habe, doch nur ein eindimensionales Array mit 81 Einträgen haben, oder nicht? gruß, gaspode |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jun 2006
Beiträge: 3
|
Danke für die Antwort. Nein, das geht immer noch nicht. Das Problem ist, dass name.push(numero) immer nur den letzten numero-Wert behält. Es müssen aber alle der Reihe nach in den Array geschrieben werden. Das andere Problem ist, dass es sein kann, dass ich für mein Vorhaben doch einen zweidimesionalen Array brauche und die habe ich schon so lange in ActionScript nicht mehr gemacht, dass ich überhaupt nicht mehr weiß, wie die eigentlich geschrieben werden. Mir wäre fast sogar noch besser geholfen, wenn jeder Wert tatsächlich einzeln steht und erst mit der Ansprache beider Arraywert zu einem String zusammengefügt wird. Also array[7][2] = array[wert: H][wert: 3] => newString("H"+"3") = "H3" Wie aber kann ich aus meinen zwei Basisarrays (box und field) dieses mehrdimensionale Array bilden? |
| | |
| | #4 (permalink) |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
|
Habs gerade nochmla getestet. name als varibalenname ist nicht so gut, da der begriff von flash reserviert ist. so geht es: PHP-Code: |
| | |
| | #6 (permalink) |
| GetYourYoYosOut Registriert seit: Jun 2002 Ort: Hamburg
Beiträge: 620
|
oder so in 2d-Arrays, falls Du die noch brauchen solltest. PHP-Code: |
| | |
| | #7 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.321
|
noch ein kleiner beitrag von mir ;-) Code: myName=[], i=-1, n=9;
while (++i<n*n) myName.push(chr(ord('A')+int(i/n))+(i%n+1));
trace(myName.join('\r'));
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (25-06-2006 um 15:23 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |