PDA

Volledige versie bekijken : Arrays


Rikkje
%Europe/Berlin %873 %2006, 21:58
Ja ik heb weer een vraagje

Ik ben aan het werk met arrays (gelukt door mensen van dit forum :D )

Nu vroeg ik me af kan ik 2 variabelen zetten onder 1 array

Dus bijvoorbeeld:


mijn_array:Array = new Array();

mijn_array.push({name:Rik,movieclip:movienaam});



Dus dat array[0] eigen 2 dingen bevat..

Het volgende script heb ik nu:


// x positie van de cam
var camX = 610;
// y positie van de eerste cam
var camY = 442;
// ruimte tussen cams
var camSpace = 10;
// aantal cams
var numCams = 4;

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

newCam = _root.attachMovie('cam_mc', 'client_cam' + i, 100+i);

newCam._x = camX;

newCam._y = camY - (i*(newCam._height + camSpace));

cam_array.push(newCam);

}


Dus nu zet hij newCam in de array maar ik wil daar eigenlijk ook een naam bij hebben, van wie de cam dus is..

weet niet of dit gaat hoor..

Dauntless
%Europe/Berlin %886 %2006, 22:15
Je eerste voorbeeld werkt... Dus dat kan je dan toch ook op je script toepassen ?

Rikkje
%Europe/Berlin %887 %2006, 22:18
Oh dat werkt! haha dat wist ik niet eens! :P

Dan ga ik dat eens even testen :D

Laiverd
%Europe/Berlin %891 %2006, 22:24
Wat je in je voorbeeld eigenlijk doet is een object aanmaken met twee properties, name en movieclip. Dat object voeg je toe aan de array en je hebt er weer toegang toe met
mijn_array[0].naam
mijn_array[0].movieclip

SaphuA
%Europe/Berlin %489 %2006, 12:44
Hehe, misschien ben je stiekem wel geniaal, omdat je het zelf bedacht hebt ;)

Jou manier is zoals Laiverd zei inderdaad een Object. Dat is eigenlijk gewoon een variable die je dan uit de array haalt (array[0]). En dan vraag je zijn properties op (want dat doe je met opjecten ^^).

Een andere methode is 2D arrays te gebruiken. Dit is bijna dezelfde manier, alleen heb je minder vrijheid in wat je in de array stopt. Een 2D array maak je zo:
var array2D = [["a", "b"], ["c", "d"], ["e", "f"]];
Dan doe je eigenlijk hetzelfde als bij een Object; je zet een array in een array. Dus als je er nu iets uit wilt lezen, vraag je eerst iets uit de 'hoogste' array dmv een index. En vervolgens uit de tweede array. Dus stel, we willen 'c' eruit lezen, dan doe je hetvolgende:
var hoogste = array2D[1]; // Wat dus een array returned
var laagste = hoogste[0]; // Wat dus c returned
Dit kun je verkorten tot één regel, wat dan hetvolgende wordt:
var samen = array2D[1][0];
(in feite is dit dus hetzelfde als met je object, waar je: arrayObj[1].prop; doet.)
Hoop dat je er iets aan hebt ;) Dacht dat je het misschien ook kon gebruiken.