Comunidad de diseño web y desarrollo en internet online

Controles dinamicos en ACTIONSCRIPT 3.0

Citar            
MensajeEscrito el 17 Ago 2007 12:59 pm
Buen día...

ya me estoy migrando a actionscript 3.0 y estoy teniendo algunas dificultades para crear mis controles dinamicos, por ejemplo en actionscript 2.0 yo creaba un checkBox asi:

comp = createObject("CheckBox", "sym1", 0);

y ahora en actionscript 3.0 se crea asi:

var comp:CheckBox = new CheckBox();

Mi inquietud es la siguiente:
en AS 2.0 yo obtenia un xml que me decia que control crear donde el nombre del nodo tiene un atributo con el nombre del comonente a crear "CheckBox" y solo tenia que crear una variable para crear ese componente y en el método createObject le ingresaba el valor del nodo en este caso CheckBox.

es posible en AS 3.0 crear componentes dinamicos sin tener que llenarme de if o case:

Ejemplo:

AS 2.0
var nombreObj:String = "CheckBox";
comp = createObject("CheckBox", "sym1", 0);

AS 3.0
var nombreObj:String = "CheckBox";
if (nombreObj == "CheckBox"){
var comp:CheckBox = new CheckBox();
}

La idea es omitir el if y hacerlo tan facil como en AS 2.0, ¿es posible?

Por carlitos712

19 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 18 Ago 2007 05:37 am
Hola
Eso keria yo tambien saber, como crear un generador en as3, k me tiene amargado esto del as3, an cambiado tantas cosas k a empezar de nuevo.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 18 Ago 2007 12:09 pm
Claro que se puede (de una manera más coherente, de hecho). La cosa es saber dónde buscar ;)
http://livedocs.adobe.com/flex/201/langref/flash/utils/package.html#getDefinitionByName()

Código :

package {
    import flash.display.DisplayObject;
    import flash.display.Sprite;
    import flash.utils.getDefinitionByName;

    public class GetDefinitionByNameExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 80;

        public function GetDefinitionByNameExample() {
            var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class;
            var instance:Object = new ClassReference();
            instance.graphics.beginFill(bgColor);
            instance.graphics.drawRect(0, 0, size, size);
            instance.graphics.endFill();
            addChild(DisplayObject(instance));
        }
    }
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 18 Ago 2007 02:19 pm
hOLA
Se agradece zaragozano aki un vigues.
Saludos

Por deker

55 de clabLevel



 

msie7

 

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