Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07-09-2005, 10:42   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 29
Dimensionale Arrays

So ich habe da mal ein Problem mit Dimensionale Array

Das habe ich mit der Flash Hilfe herausgefunden und ist mir auch klar warum das so ist:

ActionScript:
  1. ticTacToe = [[1,2,3],[4,5,6],[7,8,9]];
  2. trace(ticTacToe[1][2]);
  3. // Rückgabewert: 6
  4.  

doch nun würde ich gerne etwas in der art mache:

ActionScript:
  1. testarray = new Array();
  2.                    
  3. for(var i=0; i<4; i++)
  4. {
  5.     for(var j=0; j<4; j++)
  6.     {
  7.     testarray[i][j] = j;
  8.     trace (testarray[i][j])
  9.     }
  10. }
  11.                    
  12. /*
  13. mein ausgabe wunsch wäre nun:
  14. testarray[0][0]   =   0
  15. testarray[0][1]   =   1
  16. testarray[0][2]   =   2
  17. testarray[0][3]   =   3
  18. testarray[1][0]   =   0
  19. testarray[1][1]   =   1
  20. testarray[1][2]   =   2
  21. testarray[1][3]   =   3
  22. testarray[2][0]   =   0
  23. testarray[2][1]   =   1
  24. testarray[2][2]   =   2
  25. testarray[2][3]   =   3
  26. testarray[3][0]   =   0
  27. testarray[3][1]   =   1
  28. testarray[3][2]   =   2
  29. testarray[3][3]   =   3
  30. */

aber heraus kommt "undefined"

es sollte in einer for schleife verschachtelung statfinden wenn möglich!

danke allen die sich mit dem Problem befassen und mir versuchen zu Helfen!
Yanu ist offline   Mit Zitat antworten
Alt 07-09-2005, 10:48   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
PHP-Code:
testarray = new Array();

for(var 
i=0i<4i++)
{
        
// es soll doch ein 2 dimensionales Array werden...
        
testarray[i] = [];
        for(var 
j=0j<4j++)
        {
                
testarray[i][j] = j;
                
trace (testarray[i][j])
        }

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 07-09-2005, 10:53   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 29
THX

merci, genau das wollte ich so wissen, aber wuste nicht wie ich das machen muss:

ActionScript:
  1. testarray[i] = [];

aber da mit deinem zusatz klapts weis aber nicht genau was es da macht :-(

Wenn ich das richtig sehe bekomme ich ein 3Dmensionales indem ich:
ActionScript:
  1. testarray[i] = [];
  2. testarray[i][j] = [];

Geändert von Yanu (07-09-2005 um 10:56 Uhr)
Yanu ist offline   Mit Zitat antworten
Alt 07-09-2005, 11:25   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
aber da mit deinem zusatz klapts weis aber nicht genau was es da macht :-(
Du willst ja ein 2 dimensionales Array haben was nichts anderes ist als ein Array dessen Elemente Array's sind.

Bsp.:
PHP-Code:
// dies ist ja auch ein 2 dimensionales Array
ticTacToe = [[1,2,3],[4,5,6],[7,8,9]];
// wie man auf einzelne Elemente eines Array's zugreift 
// weist du ja, nun wollen wir das erste Element ( was in 
// diesem Fall ja auch selber ein Array ist ) des Array's ticTacToe ausgeben...
traceticTacToe[0] );

// wenn wir aber das erste Elemnt aus dem Array haben
// wollen was als erstes Element im ticTacToe steht muessen
// wir das so machen
traceticTacToe[0][0] ); 
Und wenn wir ein 2 dimensionales Array erstellen wollen müssen wir zuerst ein Array anlegen...
PHP-Code:
// die kurzschreibweise dazu waehre testarray = []; ist aber das gleiche
testarray = new Array(); 
So nun haben wir ein leeres Array, in das wir jetzt verschiedene Array's eintragen wollen, da es ja 2 dimensional sein soll.
PHP-Code:
for(var i=0i<4i++) 

        
testarray[i] = []; 
        for(var 
j=0j<4j++) 
        { 
                
testarray[i][j] = j
                
trace (testarray[i][j]) 
        } 

Die erste for-Schleife muss dann somit ein neues Array erstellen, weil ja ein 2 dimensionales Array aus lauter Array's als Elemente besteht.
Und in der 2ten for-Schleife werden dann die Elemente, also j, in das neu erstellte Array, was aber ein Element des Array's testarray ist, eingetragen.

Wenn die 2te for-Schleife das erste mal durchgelaufen ist, besitzt dein testarray genau ein Element.
Nämlich ein Array was wiederum aus 4 Elementen besteht die durch die 2te for-Schleife in das Array eingetragen wurden.

Ich hoffe es ist jetzt für dich etwas einleuchtender...

Wenn ich das richtig sehe bekomme ich ein 3Dmensionales indem ich:

ActionScript:
  1. testarray[i] = [];
  2. testarray[i][j] = [];

Ja, das siehst du richtig.
__________________
ERROR: Signature is too large

Geändert von rendner[i] (07-09-2005 um 11:31 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 07-09-2005, 11:38   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 29
Danke viel mal für die zeit die du dir genomen hast ja es ist mir einiges klarer geworden!

Geändert von Yanu (07-09-2005 um 11:42 Uhr)
Yanu ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele