Cuestión de flexibilidad
Como ya es conocido, los objetos en ActionScript realmente son una especie de arrays accesibles no sólo por número de índice, sino por un identificador.
Por tanto, cuando queremos manipular alguna de las propiedades de un objeto lo podemos hacer de las siguiente manera:
var miObj = new Object();
miObj.prop1 = "design-nation";
Aunque también podemos hacerlo así:
var miObj = new Object();
miObj["prop1"] = "design-nation";
Y esto nos abre la puerta a acceder a los valores de las propiedades de objetos de forma dinámica. Por ejemplo:
var miObj = new Object();
miObj.prop1 = "propiedad1";
miObj.prop2 = "propiedad2";
miObj.prop3 = "propiedad3";
Y luego podemos acceder a esos valores de la siguiente manera:
for (var k=1;k<4;k++){
trace("la propiedad prop"+k+ " tiene el valor " + miObj["prop"+k]);
}
¿Y qué pasa con los métodos?. Pues algo parecido. Veamos:
var miObj = new Object();
miObj.metodo1 = function(){
trace("metodo1");
}
miObj["metodo1"]();
Por tanto, podremos ejecutar métodos de un objeto de forma dinámica, sin saber realmente lo que estamos ejecutando.