Comunidad de diseño web y desarrollo en internet online

Instanciar multiples objetos usando un for

Citar            
MensajeEscrito el 29 May 2014 04:12 am
me gustaría saber como puedo instanciar múltiples objetos con un for
por ejemplo mi code he creando 6 cuadrados de colores diferentes y los he instanciado con el nombre de "CubeA,B,C,D,E,F"
aparte en su atributo de posicion x y le he dado un valor a cada uno para que me aparesca en el stage en esas cordenadas pero la Y siempre le sume +25 para lograr que aparescan una encima de la otra pero que se puedan ver cada una.
Codigo 1:

Código C++ :

var Cube1:CubeA = new CubeA();
Cube1.x = 40
Cube1.y = 140
addChild(Cube1)

var Cube2:CubeB = new CubeB();
Cube2.x = 65
Cube2.y = 140
addChild(Cube2)

var Cube3:CubeC = new CubeC();
Cube3.x = 90
Cube3.y = 140
addChild(Cube3)

var Cube4:CubeD = new CubeD();
Cube4.x = 115
Cube4.y = 140
addChild(Cube4)

var Cube5:CubeE = new CubeE();
Cube5.x = 140
Cube5.y = 140
addChild(Cube5)

var Cube6:CubeF = new CubeF();
Cube6.x = 165
Cube6.y = 140
addChild(Cube6)


lo que quiero lograr es instanciar todos los objetos con un for pero el nombre de cada clase debe estar contenido en un array
algo asi:
Codigo 2:

Código :

var NombreDeClase:Array;
NombreDeClase = [CubeA,CubeB,CubeC,CubeD,CubeE,CubeF];

for (var i = 0; i<=NombreDeClase.length; i++)
{
   cube[i].x = 40
   cube[i].y = (i * 16) + 10;
   
   addChild(Cube[i])
}

lo que quiero es lograr hacer lo de los cupos instanciados uno por uno pero esta vez usando un for para hacerlo de forma mas rapida y escribir menos lineas de codigo, porque tengo que hacer algo simimar para un juego de cartas pero no son 54 cartas, son 100 imagínense declarar 100 veces el código 1, me voy a volver loca!

Por Jenniferp

9 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 May 2014 12:55 pm
Sería algo asi

Código ActionScript :

for (var i = 1; i<=7.length; i++)
{
   var target:Class = createInstance("Cube"+i)
   target.x = 40
   target.y = (i * 16) + 10;
   addChild(target)
}

function createInstance(className:String):Object
   {
      var myClass:Class = getDefinitionByName(className) as Class;
      var instance:Object = new myClass();
      return instance;
   }


Usa números en vez de letras para los nombres de clase y te ahorras un lookup, aunque puedes adaptar esto a como lo tienes hecho

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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