Buenas
Elseo2 escribió:
En AS.3 ya NO es importante el nombre de instancia. En AS.3 normalmente se tienen variables que hacen referencia a los MCs y esa es la idea que tenemos que mantener.
No te creas q es tan asi.... el nombre de una instancia fue y sigue siendo importante en AS3. Guardar referencias a MCs no provee ninguna mejora (salvo excepciones) y tampoco es la idea q hay q usar en AS3, por favor considera en eliminar esa idea ya q es una falacia...
phoxer escribió:
pero la mejor forma de implementar acceso al root es desde el root guardar la referencia en un Singleton
Creo q te confundis con la implementacion del _global de AS2 en AS3...
Bueno, vamos al grano,
nasho, podes hacer lo q necesitas de la siguiente forma
En AS2 si querias referirte a un mc del escenario era como bien decias
Código ActionScript :
var contenedor:MovieClip = _root.dragones;
for ( var i=0; i<10; i++ )
{
dragones.attachMovie("dragonID","dragon"+i,i)
}
.
.
.
// en otra parte del codigo obtenias un dragon en particular (el nro 5)
var dragon:MovieClip = _root.dragones["dragon" + 5];Ahora en AS3 seria asi
Código ActionScript :
// agrego un elemento al display list
var mc:MyMovieClip
for ( var i=0; i<10; i++ )
{
mc = new MyMovieClip()
mc.id = "dragon" + i;
mc.name = "dragon" + i;
this.dragones.contenedor.addChild(mc);
}
.
.
.
// en otra parte del codigo obtenes un dragon en particular (el nro 5)
var dragon:MyMovieClip= this.contenedor.getElementByName("dragon" + 5) as MyMovieClip(podes reemplazar MovieClip por el nombre de la clase del simbolo)
Tambien podes usar la forma de AS2, pero siempre haciendo referencia a this o this.parent y asi... el _root ya no es reconocido por as3... para llegar a la linea principal deberas moverte por paths relativos (usando this y parent).
Como ves... no es taaaan diferente a como lo era antes... ¿no?
phoxer escribió:
pero por ejemplo para un juego como utilizas un sistema de score o de tiempo, o por ejemplo si queres comunicarte entre clases o a una funcion general de manjeo del programa, por ejemplo la información de el usuario logueado? (lo pregunto para saber como lo haces nada mas)..
Porque por ejemplo si queres mantener una seción de usuario activa , tenes que guardar en una variable como minimo el ID del usuario, y una de las mejores formas que conosco en AS3 es guardar la referencia en un singleton o en una variable en el "root".
Tampoco es la unica, ni la mejor manera de hacerlo... le estas dando mucha importancia a los Singleton, cosa q no se hace... revisa la teoria de patrones de diseño
Por ej... para funciones generales de manejo del programa, utilizaria funciones estaticas dentro de clases o directamente funciones sueltas dentro de un paquete, para usuarios usaria un VO (Value Object) ya q es informacion transversal a toda la aplicacion junto con ulgun manager de usuarios (permisos, datos, etc)...
A donde apunto con esto robert?? es a q no pases todo a un unico singleton, meter todo junto dentro de algo como en as2 (bah.. en as1... en as2 ya tampoco se deberia haber hecho) se hacia en _root o _global, no es la mejor manera de programar... talvez si mas rapida, pero no la ideal...
Eliseo2 escribió:
Sé que hay gente que adora el antiguo _global y el querido _root. Sinceramente creo que es mejor ir dejándolos aunque sea poco a poco aunque ¡¡Libertad para todos!! quien se sienta cómodo que los utilize.
Puede ser.... pero si usan AS3 q lo utilicen bien y no intenten hacer lo mismo q hacian en as2 o as1 en as3... El q quiere seguir con esa manera de programar pues q siga en as2... el cambio a as3 no lo va a favorecer.... al q quiere cambiar pues hay q ayudarlo a q aprenda
Bueno, espero q les sirva la ayuda.
Saludos!!!