Comunidad de diseño web y desarrollo en internet online

Crear un Child mediante un String

Citar            
MensajeEscrito el 22 Feb 2011 04:43 pm
Hola a todos, tengo una duda con la cración de instancias. Tengo en la biblioteca un MovieClip que hace referencia a una clase 'mymc' y puedo añadir mediante:

Código ActionScript :

var mc:mymc = new mymc;
addChild(mc);


Todo bien hasta ahí, pero ahora tengo más MovieClips en la Biblioteca. Y lo que quiero saber es si puedo mediante un String referirme al objeto que quiero crear. Por Ejemplo supongamos que tengo 4 MCs en la biblioteca que se instancian: mcuno , mcdos , mctres , mccuatro. Ademas tengo un String str="mcuno".

Código ActionScript :

var str:String = "mcdos";
var mc = new [str]; //Aquí es donde nesecito saber Como crearlo
addChild(mc);

Si ejecuto esto me da: TypeError: Error #1007: Se intentó crear una instancia en un tipo no constructor.

Sé que podria crear esto usando un switch(str){ case "mcuno": ....
pero si se puede hacer de esta manera me facilitaria mucho trabajo

Por elxsergio

25 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Feb 2011 07:28 pm
BuenAS:

Podías llamar a los símbolos de la biblioteca (que tienes que exportar para AS) de forma secuencial, por ejemplo Movie_0, Movie_1... y con un for obtenerlos gracias a:

getDefinitionByName();

Algo así:

Código ActionScript :

import flash.display.DisplayObject;

var MiClase:Class;
var instancia:DisplayObject;
for (var i:int = 0; i < 3; ++i) {
   MiClase = getDefinitionByName("Movie_" + String(i)) as Class;
   instancia = new MiClase();
   instancia.x = 50*i;
   addChild(instancia);
}


A cada instancia le he sumado 50*i para que no salgan una sobre otra.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 22 Feb 2011 08:32 pm
Gracias por responder era justo lo que buscaba.

Por elxsergio

25 de clabLevel



Genero:Masculino  

firefox

 

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