Thursday, March 22, 2007

[TUTORIAL] De Blokhaken notatie

De blokhaken( '[' en ']') notatie is eigenlijk min of meer de opvolger van wat eerst eval() was. Het idee is eigenlijk precies hetzelfde als een array, maar in plaats van dat je getallen gebruikt om een bepaald items hierin aan te spreken, gebruik je in deze notatie strings. De array word dan vervangen door een MovieClip, of een ander Object. Het stelt je dus in feite in staat een MovieClip of Object te doorzoeken of deze een instatie bevat gelijk aan de string. Wanneer je dit nog nooit hebt gebruikt zal je wel denken: als ik deze string weet, waarom noteer ik het dan niet gewoon bijvoorbeeld zo:



movieclip.referentie.waarde = "string";





Het antwoord is: het is niet dynamisch. Wanneer je bijvoorbeeld aan de hand van for-loops een bepaald aantal MovieClips op je stage laat zetten, weet je niet hoeveel het er zijn en dus welke instanties er na de loop op je stage staan. Met de blokhaken notatie kan je dus in de in een movieclip zoeken naar een string(en dus ook een string in combinatie van één of meer variabelen). Hé? Hoor ik daar variabelen? Inderdaad, nu is het wel dynamisch.

[b]Hoe gebruik ik de blokhaken notatie[/b]

Stel je voor, je maakt dmv een for-loop een x aantal MovieClips aan. De nieuwe naam die je toekent word samengesteld uit de string 'mc' met daarachter de huidige waarde van variablele 'i'. Hoe spreek ik deze movielip dan het beste aan?



var aantal:Number = 5;
for (var i:Number = 0; i <= aantal; i++)
{
this.attachMovie("mcinlibrary", "mc" + i, this.getNextHighestDepth());
this["mc"+i].i = i;
this["mc"+i]._x = this["mc"+i].i*20;
}




Het idee zal nu wel duidelijk zijn. aangezien je de nieuwe instantie in 'this' attachd, zal je hierin gaan 'zoeken'. De referentie is zoals je bij de instance name van de geattachde MC hebt ingegeven is "mc"+i. Met this["mc"+i] zal je dus de MovieClip bedoelen in 'this' met de instancename gelijk aan de uitkomst van de samengestelde string.

No comments: