[FL] Dibujar cuadro de texto mediante un For dentro de figuras creadas dinamicamente

7 views
Skip to first unread message

Overdrive

unread,
Nov 10, 2010, 3:30:22 PM11/10/10
to Riactive

Hola de nuevo!!

Sigo trabajando con mi gratificador de Atomos!!

Es mi primer proyecto en AS3 y de repente no se ni de donde vengo ni a
donde voy, el siguiente código me dibuja en base a una variable una
cantidad de elipses (circulos) en el escenario mediante un FOR esto
funciona perfecto, la cosa es que en ese mismo for le quiero crear un
cuadro de texto a cada figura:

atomo.addChild(textoAtomo); //******************* Solo se crea en la
primer figura

Y solo se crea en la primer figura, creo que el problema es que solo
tengo una instancia en el escenario llamada atomo,

¿Como puedo hacer o saber como se llaman mis dibujos en el escenario o
en su defecto que debo poner dentro del For para que el texto se
asigne a cada figura??

Mil gracias por su ayuda!


var centroHeight:int=stage.stageHeight/2;
var centroWidth:int=stage.stageWidth/2;

trace(centroHeight,centroWidth );

var marca:drawCircle=new drawCircle(200,100,0xCCCCCC);//Atencion aqui*
marca.x=400-(marca.width/2);
marca.y=300-(marca.height/2);
this.addChild(marca);

//Creamos los atomos //////

var numeroAtomo:Number=6;//Cuantos atomos voy a dibujar
var tipoAtomo;//Segun el XML que tamaño tiene
var tamanoAtomo:int=100;//El tamaño de cada atomo (CH,M,G)
var distanciaAtomo:Number=100;//La distancia entre el atomo y la marca
var distanciaTotal:Number;


distanciaTotal = (marca.width/2)+distanciaAtomo+(tamanoAtomo/2);//

var puntoInicial:Point = new Point();
puntoInicial.x=450-(marca.width/2);
puntoInicial.y=300-(marca.height/2);

var distribucion:Number=360/numeroAtomo;
var radianes:Number = distribucion * (Math.PI / 180);
var anguloDeCadaCirculo:Number=radianes;



for (var i:Number=0; i<numeroAtomo; i++) {
var atomosNumero="Atomo"+i;

trace(radianes);
//
var atomo:drawCircle=new drawCircle(tamanoAtomo,tamanoAtomo,
0x006699);
//

//Texto
textoAtomo.text="Hola Mundo";
atomo.addChild(textoAtomo); //******************* Solo se crea en la
primer figura
//

//Formulas Matematicas
var xPos:Number=puntoInicial.x+distanciaTotal*Math.sin(radianes);
//Hallamos la coordenada x del punto
var yPos:Number=puntoInicial.y-distanciaTotal*Math.cos(radianes);
//Lo mismo con la y, teniendo en cuenta que está invertida con
respecto a un plano cartesiano
var puntoFinal:Point=new Point(xPos,yPos);
//Concatenamos la informacióm en un punto
//
trace(puntoFinal);
atomo.x=puntoFinal.x;
atomo.y=puntoFinal.y;
this.addChild(atomo);
//

radianes=radianes+anguloDeCadaCirculo;
//grados = grados + anguloDeCadaCirculo


}//Termina For

Raul Acevedo

unread,
Nov 10, 2010, 9:46:01 PM11/10/10
to riac...@googlegroups.com
hola me parece que en efecto lo que tienes que hacer es crear una instancia cada vez que iteras en el for , creo que quedaría asi

var textoAtomoN:TextField;
var atomosNumero:int
var atomo:drawCircle;

for (var i:Number=0; i<numeroAtomo; i++) {
           textoAtomoN = new TextField();
        atomosNumero ="Atomo"+i;

       trace(radianes);
       //
       atomo =new drawCircle(tamanoAtomo,tamanoAtomo,
0x006699);
       //

       //Texto
       textoAtomoN.text="Hola Mundo";

       atomo.addChild(textoAtomo); //******************* Solo se crea en la
primer figura
       //

       //Formulas Matematicas
       var xPos:Number=puntoInicial.x+distanciaTotal*Math.sin(radianes);
       //Hallamos la coordenada x del punto
       var yPos:Number=puntoInicial.y-distanciaTotal*Math.cos(radianes);
       //Lo mismo con la y, teniendo en cuenta que está invertida con
respecto a un plano cartesiano
       var puntoFinal:Point=new Point(xPos,yPos);
       //Concatenamos la informacióm en un punto
       //
       trace(puntoFinal);
       atomo.x=puntoFinal.x;
       atomo.y=puntoFinal.y;
       this.addChild(atomo);
       //

       radianes=radianes+anguloDeCadaCirculo;
       //grados = grados + anguloDeCadaCirculo


}//Termina For

 En lo personal no me gusta declarar con var dentro del for  por que me parece redundate por eso saque algunas de las declaraciones, espero esto te ayude
 
--

 
<mx:riactive>
   Mensaje enviado por Google Groups "RIActive"
   Si deseas postear o responder, enviar un e-mail a riac...@googlegroups.com
</mx:riactive>

Reply all
Reply to author
Forward
0 new messages