Una cosa que de la que no he oido hablar sobre AS3 es las nuevas caracteristicas de la clase Array, si, nuestro antiguo compañero de andanzas... Que yo cuente tiene por lo menos 7 nuevos métodos que me parecen muy muy interesantes. Tanto que podría decir que usandolos no volveras a escribir un bucle que recorra un Array. Y eso, teniendo en cuenta que el 90% de los bucles que normalmente se escriben se utilizan con Arrays, es mucho decir.
La primera bendición llega con el nombre de indexOf(), seguro que mas de una vez lo habeis utilizado con la clase String, pues básicamente funciona igual solo que busca en un elemento en un Array.
Actionscript:
-
// Busco y elimino el elemento "dos"
-
var numeros:Array = ["uno","dos","tres","cuatro"];
-
numeros.splice( numeros.indexOf("dos"), 1);
Por fin se puede buscar algo dentro un array manteniendo la dignidad, sin la necesidad de un embarazoso bucle :_)
Pero ahi no acaba todo, dados los nuevos closures, se han añadido a la clase Array unos metodos que cogen funciones como parametros y hacen cosas muy utiles. El mejor ejemplo, el forEach, ¿Cuantas veces has hecho un bucle para crear MovieClips por cada uno de los elementos? Me referia a cúantas al dia... ;)
Actionscript:
-
var nombres:Array = ["uno","dos","tres","cuatro"];</code>
-
-
function mostrar(item:String,index:Number,array:Array):void{
-
var tx:TextField = new TextField();
-
tx.text = item;
-
tx.y = index*20;
-
addChild(tx);
-
}
-
-
nombres.forEach(mostrar);
Como veis el metodo forEach coge como parametro una funcion y la ejecuta una vez por cada elemento del Array pasandole como argumento el propio elemento entre otras cosas. Realmente me encanta... Más sobre esto en próximos posts.