Fala gente!
Ontem descobri um negócio interessante.
Estava eu com minha tarefa de construir um menu multinível cujo conteúdo é fornecido por um XML. Teria um array com os movieclips de todos os itens do menu (variável menu) e teria de chamar uma função passando o índice para minha função ou para abrir o submenu ou para carregar um .swf externo expresso a seguir.
ActionScript
for(i=0; i<menu.length; i++){
menu[i].onRelease = function(){
showMenu(i)
}
}
Só que essa forma de codificação não fez nada que eu queria. Todos os botões chamavam o mesmo índice, o último.
não queria utilizar uma
função recursiva, porque em ActionScript a recursividade tem um limite de 255 níveis (
só posso chamá-la dentro dela mesma 255 vezes). Após horas quebrando a cabeça, achei uma solução, que por sinal é muito simples. Apenas redeclare a variável a ser utilizada como índice, de acordo com o código abaixo.
ActionScript
for(i=0; i<menu.length; i++){
var indice:Number = i;
menu[indice].onRelease = function(){
showMenu(indice)
}
}
Fácil, não? Difícil mesmo foi chegar nesse resultado. =P