Tuesday, December 04, 2007

Watch out for a closure in a loop:

var info = [ "a", "b", "c", ... ];
for (var i = 0; i < 10; i++)
{
var str:String = info[i];
btn[i].onRelease = function() { getURL(str) }
}

All buttons will bring you to the last url because the closure maintains a reference to the variable str.

2 Comments:

At 5:47 PM , Blogger daniel said...

I write a separate function to create the buttons :

createButton = function(vID){
this["btn"+vID].onRelease = function(){
trace("bob");
}
}

for (var i=0;i<5;i++){
createButton(i);
}

 
At 2:33 AM , Anonymous Anonymous said...

Gostei muito desse post e seu blog é muito interessante, vou passar por aqui sempre =) Depois dá uma passada lá no meu site, que é sobre o CresceNet, espero que goste. O endereço dele é http://www.provedorcrescenet.com . Um abraço.

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home