Comunidad de diseño web y desarrollo en internet online

[AS3] Agregar MovieClips desde librería con método "for"

Citar            
MensajeEscrito el 21 Sep 2007 06:30 pm
Hola a todos, estoy tratando de ahorrarme trabajo, en vez de agregar muchas MovieClips diferentes desde la librería de esta manera:

Código :

var prev00:Prev00 = new Prev00();
prev00.name = "prev00";
var prev01:Prev01 = new Prev01();
prev01.name = "prev01";
etc, etc.


En vez de eso, quería hacerlo con el método "for":

Código :

var PrevClass:Class;
for (var i:Number = 0; i<=1; i++) {
   PrevClass = getDefinitionByName("Prev0" + i) as Class;
   this["prev0" + i] = new PrevClass() as MovieClip;
   this["prev0" + i].name = "prev0" + i;
   addChild(["prev0" + i]);
}
trace(prev00);


Al llegar al trace, me marca el siguiente error: "Access to undefined property prev00" y de ahí no paso. Será sólo un error de sintaxis? O que pasa?

Muchas gracias por su ayuda.

:swat: *Editado zguillez: utiliza las etiquetas [code] para postear código

Por dashpaul

6 de clabLevel



Genero:Masculino  

Torreón

firefox
Citar            
MensajeEscrito el 23 Sep 2007 02:03 am
Si tenés ese código en una clase, creo que hacerla dinámica podría solucionarlo.

Pero eso es lo que se conoce como malas prácticas de programación.

Lo que te recomiendo es que PrevClass extienda a otra clase (que a su vez extendería a MC) y que se autoagregue al stage con un método heredado de la clase padre.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 23 Sep 2007 02:18 am
A ese código le faltaron un par de this.

Código :

var PrevClass:Class;
for (var i:Number = 0; i<=1; i++) {
   PrevClass = getDefinitionByName("Prev0" + i) as Class;
   this["prev0" + i] = new PrevClass() as MovieClip;
   this["prev0" + i].name = "prev0" + i;
   addChild(this["prev0" + i]);
}
trace(this.prev00);  //---> [object Prev00]

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 23 Sep 2007 07:01 pm
Gracias Zguillez, lo probé y funciono correctamente. Se que es correcto poner "this", aunque me había acostumbrado a omitirlo cuando no voy a trazar una ruta.Yo entendía que si no lo ponías se daba por default.

Otra vez gracias.

Por dashpaul

6 de clabLevel



Genero:Masculino  

Torreón

firefox
Citar            
MensajeEscrito el 23 Sep 2007 07:41 pm
Gracias por el consejo HernanRivas, pero no entiendo bien como sería. Conforme me permitan los plazos de los proyectos, voy a tratar de aprender a trabajar más con clases y menos metiendo todo el código en la linea de tiempo.

Por dashpaul

6 de clabLevel



Genero:Masculino  

Torreón

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.