vrijdag 22 mei 2009

getChildByName ()

Stel we hebben 5 feed knoppen (instanties) van de klasse Feed.

feed1:Feed = new Feed();
feed2:Feed = new Feed();
...

Wanneer we nu elke knop willen aanspreken voor een bepaalde eigenschap te veranderen, zouden we geneigd zijn een for lus te gebruiken zoals deze:

for(var i:Number = 1; i < 6; i++) {
feed+i.eigenschap = waarde;
}

Het probleem hier echter is dat flash deze manier van werken niet herkend. De foutmelding die we krijgen is "1050: Cannot assign to a non-reference value".

Wat we moeten doen is eerst elke feed een naam geven, en dan via getChildByName () werken.

feed1.name = "feed1";
feed2.name = "feed2";
...

for (var i:Number = 1; i < 6; i++) {
getChildByName("feed"+i).eigenschap = waarde;
}

Zo werkt alles perfect, meer info vind je hier: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObjectContainer.html#getChildByName()

Joren De Smet

Geen opmerkingen:

Een reactie posten