Volledige versie bekijken : Loopen door array met MC's en kleur wijzigen
pgr83
%Europe/Berlin %761 %2005, 19:17
Hallo,
Ik heb een Array met movieclips, nu wil ik de Array doorlopen en de kleur van de MC veranderen. Het Probleem is dat alleen de allereerste in de Array verandert van kleur en de rest blijft zijn orginele kleur houden. Elke MC heeft een andere depth.
for(rc=0; rc < 10; rc++)
{
for(cc=0; cc < 10; cc++ )
{
clr = new Color(_root.MC_BOX[rc][cc].MC);
clr.setRGB(0x0000FF);
}
}
TheDutch
%Europe/Berlin %826 %2005, 20:50
Dan is waarschijnlijk het pad voor de overige niet juist. Gebruik trace(pad) om te kijken of de paden juist zijn :).
Dauntless
%Europe/Berlin %858 %2005, 21:35
for(rc=0; rc < 10; rc++)
{
for(cc=0; cc < 10; cc++ )
{
clr = new Color(_root.MC_BOX[rc][cc].MC);
clr.setRGB(0x0000FF);
}
}
Dat kan zowieso niet juist zijn...
Dan heb je instance namen van: _root.MC_BOX.2.8 maar instance namen mogen niet met een getal beginnen ...
TheDutch
%Europe/Berlin %859 %2005, 21:37
Scherp opgemerkt Dauntless ;).
pgr83
%Europe/Berlin %890 %2005, 22:21
Dat kan zowieso niet juist zijn...
Dan heb je instance namen van: _root.MC_BOX.2.8 maar instance namen mogen niet met een getal beginnen ...
Dit kan wel, MC_BOX[2][8] is een array en daarin sla ik een instance op en bovendien gaf ik al aan dat dit wel werkt bij MC_BOX[0][0].MC maar alleen niet bij de rest. Waarschijnlijk heeft het iets met depth te maken want is ik MC_BOX[2][8].MC een depth geef van 1 kan ik deze gewoon aanspreken en van kleur laten veranderen. Ook bij het tracen binnen de loop krijg ik als resultaat dat elke MC_BOX[rc][cc].MC een Object is.
Toch niet zo heel scherp.... :)
Dauntless
%Europe/Berlin %893 %2005, 22:26
Ok, op die manier gaat het idd wel :)
Maar anyway, dan kan het dus wel ...
Kan je even laten zien hoe die array gemaakt wordt?
mateo)
%Europe/Berlin %896 %2005, 22:31
MC_BOX[2][8] is een array
Dat kan niet: MC_BOX[2][8] is een object met een variabele met de naam 'MC' (MC_BOX[2][8].MC) waar je een reference naar een movieclip in hebt opgeslagen. Anders kan ik dit niet lezen.
Misschien moet je de for loop waarmee je de mc's aanmaakt en toewijst ook even posten.
pgr83
%Europe/Berlin %902 %2005, 22:39
for(rc=0; rc < rows; rc++ )
{
MC_BOX[rc] = new Array();
for(cc=0; cc < coloms; cc++ )
{
// STORE DATA IN ARRAY
MC_BOX[rc][cc] = [{OBJ:0}];
MC_BOX[rc][cc] = new Object();
MC_BOX[rc][cc].locked = false;
MC_BOX[rc][cc].MC = createEmptyMovieClip('MC_BOX',depth);
MC_BOX[rc][cc].MC._visible = false;
MC_BOX[rc][cc].MC.lineStyle(1,'0x000000',100);
MC_BOX[rc][cc].MC._x = (cc == 0)? fieldspacing: 3;
MC_BOX[rc][cc].MC._y = (rc == 0)? fieldspacing: 3;
MC_BOX[rc][cc].MC.moveTo(units*cc,units*rc);
MC_BOX[rc][cc].MC.beginFill(0xFF0000,100);
MC_BOX[rc][cc].MC.lineTo(units*cc,units*rc);
MC_BOX[rc][cc].MC.lineTo(units*cc,units*(rc+1));
MC_BOX[rc][cc].MC.lineTo(units*(cc+1),units*(rc+1));
MC_BOX[rc][cc].MC.lineTo(units*(cc+1),units*rc);
MC_BOX[rc][cc].MC.lineTo(units*cc,units*rc);
MC_BOX[rc][cc].MC.endFill();
depth++;
}
}
mateo)
%Europe/Berlin %911 %2005, 22:52
de mc's moeten niet allemaal dezelfde naam krijgen. met dit regeltje werkt het wel:
MC_BOX[rc][cc].MC = _root.createEmptyMovieClip('MC_BOX_' + rc + '_' + cc,depth);
pgr83
%Europe/Berlin %916 %2005, 22:59
Kan je wel zoenen :), duizend maal dank, weer wat geleerd....
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.