PDA

Volledige versie bekijken : index in FOR-loop bereiken in onRelease functie


tjeemp
%Europe/Berlin %760 %2007, 18:14
Ik zit al een hele tijd te proberen, maar het lukt me maar niet om de index (i) van een for-loop uit te lezen binnen de onRelease functie die ik in de loop heb zitten.
Heeft dit te maken met de scope waarbinnen de index zit of iets dergelijks?
Het punt is ook dat Actionscript natuurlijk niet terwijl hij door de loop gaat ook door de onRelease functie gaat, dit doet ie pas als je klikt, maar dan is het dus zo dat de index niet juist is omdat dat dan de laatste versie is van die variabele (bij het afronden van de loop dus)
In mijn geval is dat geloof ik 13 of iets dergelijks.


for(var i = 0; i < menuItems.length; i++)
{
menuItems[i][0]._x = 0;
menuItems[i][0]._y = 77 + (i * 10);
menuItems[i][0].thisLabel.menuLabel.text = menuItems[i][1];


menuItems[i][0].onRelease = function()
{
if(select != i)
{
for(n = 0; n < menuItems.length; n++)
{
if(n != i)
{
var moveX:Tween = new Tween(menuItems[n][0].thisLabel, "_x", mx.transitions.easing.Regular.easeOut, menuItems[n][0].thisLabel._x, 91 + 2, 1, true);
var sX:Tween = new Tween(menuItems[n][0].barHandle, "_width", mx.transitions.easing.Regular.easeOut, menuItems[n][0].barHandle._width, 91, 1, true);
}
}
_root.menuPress(i + 1);

this.thisLabel._alpha = 100;
var moveX:Tween = new Tween(this.thisLabel, "_x", mx.transitions.easing.Regular.easeOut, this.thisLabel._x, Stage.width, 1, true);
var sX:Tween = new Tween(this.barHandle, "_width", mx.transitions.easing.Regular.easeOut, this.barHandle._width, Stage.width, 1, true);
}
_global.select = menuItems[i][1];
}
}

Jan
%Europe/Berlin %778 %2007, 18:41
Heb hier ook eens uren mee zitten klooien tot ik deze thread vond.
http://www.flashfocus.nl/forum/showpost.php?p=244073&postcount=2Dus de eer gaat vooral naar Dauntless, zelf zou ik er nooit opgekomen zijn. :D
Je moet hiervoor een extra variabele aanmaken en die de waarde van i geven:
for(var i = 0; i < menuItems.length; i++)
{
menuItems[i][0]._x = 0;
menuItems[i][0].waarde=i;
//en dan in de rest van je script binnen de onRelease declaratie de i vervangen door this.waarde

Groeten,
Jan