Soullost mandó una buena pregunta en este post, creo que vale la pena hacer un post de la respuesta. :-) Ya vimos cómo crear variables dinámicamente, e incluso cómo instanciar objetos de cualquier tipo dinámicamente. Pero, a partir de ahí: cómo puedo accesar las variables o métodos dentro de esos objetos?…
El método getChildByName(nombre) nos regresa un objeto del tipo Objeto en ActionScript. Y como objeto tiene ciertas variables y métodos, que toooodos los objetos tienen. Y ya… Si tú sabes que el elemento que se llama «arbol5» es un arbol, y debe de tener métodos como «sacaFruta()», Flash no tiene porqué saberlo!. Para Flash lo que regresa getChildByName es un objeto simple y ya…
Ok ok… ¿Entonces?… Pues tienes que indicarle a Flash que eso que te regresó getChildByName es algo diferente con una cosa que se llama «casting». Casting es decirle a un objeto que se comporte como algún otro. Si yo tengo un objeto llamado Arbol, y sé que getChildByName(«arbol5») me debe de regresar un Arbol, hacemos lo siguiente:
Arbol(getChildByName(«arbol5»));
Y listo :-) Con poner el NombreDeClase( objeto_a_castear ); ya le estamos diciendo a Flash que ese objeto en realidad es un Arbol, y con eso podemos accesar todas las variables y métodos públicos de esa clase. :-) Por ejemplo:
Arbol(getChildByName(«arbol5»)).sacaFruta();
Vaya… Siento que escribí mucho y dije poco. ¿Queda claro?… Si no díganme, y busco la manera de explicar esto mejor. :-)
Filed under: AS 3, Flash, Tutoriales, dinámico
Ultimos Comentarios