PDA

Volledige versie bekijken : Tweedimensionale Arrays


NielsDesmet
%Europe/Berlin %895 %2008, 22:29
Hoe kan je in AS een 2-dimensionale array declareren? Ik weet in ieder geval hoe het moet in C; bijvoorbeeld: int array[5][5]. Hoe kan ik nu hetzelfde doen in AS? (Ik vind eigenlijk het hele array-systeem van AS zeer ingewikkeld)

Jan
%Europe/Berlin %903 %2008, 22:41
Kan op verschillende manieren maar ik doe het meestal zo:
var reeks:Array=[ ["a",1], ["b",2], ["c",3] ];

trace(reeks[2][1])//output:3

Zelfde vraag:

http://ww.flashfocus.nl/forum/showthread.php?p=298137

Groeten,
Jan

NielsDesmet
%Europe/Berlin %914 %2008, 22:57
Ow, sorry! Ik wist niet dat de topic al bestond. Waarschijnlijk omdat ik zocht naar "multidimensionale array" ipv "Multidemesionale Array" =P

Dauntless
%Europe/Berlin %916 %2008, 22:59
Het grote verschil in Flash is dat de Array ook zelf een classe is, in tegenstelling tot talen als Java en C. Dit heeft zowel voor als nadelen: Het grootste nadeel is dat je in Flash geen types kunt toekennen aan de elementen van een array (en zodus kan de inhoud van alles zijn, zoals in het voorbeeld van adnez). Het grootste voordeel is dat de array class een hele hoop methodes beschrijft die het werken met arrays eenvoudiger maken.

De blokhaken zijn dan weer een 'verkote notatie' van de constructor van de array class.
var myArray:Array = new Array();
//is hetzelfde als
var myOtherArray:Array = [];

Je kan als 1ste argument van de constructor een number meegeven die dan de lengte van de array aanduidt. Als je een multi-dimensionale array wil, moet je dus van elk array element terug een array-instance maken:
var ar:Array = new Array(10); //lengte van 10
for(var i:Number = 0; i<ar.length; i++) ar[i] = new Array(10);

En je hebt nu een array van 10x10