Comunidad de diseño web y desarrollo en internet online

Instanciar Clases

Citar            
MensajeEscrito el 18 Nov 2009 06:12 pm
Holas, escribo por una consulta, resulta que quiero crear un metodo para instancias clases por ej
Tengo mi clase Main y subclases : Ball1, Ball2, Ball3

function play(e:event):void{

show(Ball2);

}


function show(Clases:Class):void{

var particle:Clases = new Clases();


}


Cual seria la forma correcta para que me instancia automaticamente, si por ej en vez de haber puesto show(Ball4) hubiese sido show(Ball1) o show(Ball3) y cree la variable ????

Ya que me tira errores....
Gracias!

Por kamirox

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 18 Nov 2009 07:31 pm
yo instancio Clases a partir de cadenas, no se si te sirva:

Código ActionScript :

function play(e:event):void
{
    show("Ball2");
}

function show(clase_str:String):void
{
    //tienes que incluir de alguna forma la clase al .as para que te lo pueda instanciar en ejecución, yo lo hago con un simple trace de la clase
    trace(Ball1, Ball2, Ball3, Ball4);
    var particle:Object;
    var Clase:Class = getDefinitionByName("el.package.de.la.clase" + clase_str) as Class;
    particle = new Clase();
}

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

safari
Citar            
MensajeEscrito el 18 Nov 2009 11:47 pm
Gracias por responder mira este es el metodo:

Código ActionScript :

private function show(clases:String, Aball:Array, onball:Boolean, x:Number, y:Number, NumParticle:Number, 
                                          vx:Number, vy:Number, angle:Number, gravity:Number):void {
                  
                  for (var d:uint = 0; d < NumParticle; d++){     
                        onball = false;
                        
                        trace(Ball, Ball2, Ball3, Ball4); 
                        
                        var Clase:Class = getDefinitionByName("K4miroX.Example" + clases) as Class; 
                        var particle:Object = new Clase(); 
                        particle.x = x;
                        particle.y = y;
                        particle.vx = vx;
                        particle.vy = vy;
                        particle.angle = angle;
                        particle.gravity = gravity;
                        addChild(particle);
                        Aball.push(particle);
                  }
                  
               }


Pero al momento de compilar me arroja error con el :Object

Error: Conversión implícita de un valor con tipo estático Object a un tipo flash.display:DisplayObject posiblemente no relacionado.
addChild(particle);


Y este es el constructor de una de las subclases para tener una idea :

Código ActionScript :

 public function Ball4()  
      { 
        var data:BitmapData = new BitmapData(30, 1, false, 0xFF0000);
      data.fillRect(new Rectangle(0, 0, 30, 1), 0x00ade6);
      var bitmap:Bitmap = new Bitmap(data);
      bitmap.blendMode=  BlendMode.ADD;
       bitmap.filters = [new GlowFilter(0x5FF3F4, 1, 20, 10, 5, 2)];
      addChild(bitmap);
   
      } 



Ojala alguien me pueda ayudar, saludos

Por kamirox

3 de clabLevel



 

chrome

 

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