Comunidad de diseño web y desarrollo en internet online

undefined

Citar            
MensajeEscrito el 25 Mar 2010 04:32 pm
hola a todos. soy novato con AS 3.0, no así con AS 2.0.

cambiandome al nuevo lenguaje trato de acceder a un movieclip o sprite anidado en otro, pero al tracearlo me sale undefined y no se que hago mal. el código es el siguiente

Código ActionScript :

var m1:Sprite=new Sprite();
m1.graphics.beginFill(0x003366);
m1.graphics.drawRect(100, 100, 100, 100);
m1.graphics.endFill();

var d:MovieClip=new MovieClip();
d.addChild(m1);

addChild(d);

trace(d["m"+1]);


alguien me puede explicar porque al tracearlo me da undefined?
el asunto es que quiero acceder a estos movieclips desde un bucle for, pero me dice que la propiedad no está definida.
espero que alguien pueda ayudarme. gracias a todos

Por gurdi1

8 de clabLevel



 

msie8
Citar            
MensajeEscrito el 25 Mar 2010 05:08 pm
Porque "m1" es una VARIABLE que pertenece a la película principal, pero no al MovieClip "d".
podrías escribir

Código ActionScript :

var d:MovieClip=new MovieClip(); 
d.addChild(m1); 
d.mref1=addChild(d);  //<---he cambiado el nombre de variable para que se vea claramente
          //<--que son variables distintas, pero le podía haber dado el mismo nombre
trace(d["mref"+1]);

En cualquier caso, para acceder a un MovieClip DENTRO de otro, se suele usar getChildAt

Código ActionScript :

for (var i=0;i<d.numChildren;i++){
   var mc:MovieClip=d.getChildAt(i) as MovieClip
   mc.x=Math.random()*100
}

ó getChildByName (si le has dado valor a la propiedad "name" a "m1")

Código ActionScript :

var m1:Sprite=new Sprite(); 
m1.graphics.beginFill(0x003366); 
m1.graphics.drawRect(100, 100, 100, 100); 
m1.graphics.endFill(); 
m1.name="m1_name"
d.addChild(m1);
var mc=getChildByName("m1_name") as MovieClip

NOTA:He puesto la "conversión de cast" (ese "as MovieClip") porque tanto getChildAt como getChildByName devuelve un objeto de la Clase DisplayObject. La conversión de cast le dice al compilardo que es "algo más" que un DisplayObject, que es un MovieClip

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2010 05:35 pm
muchas gracias por tu respuesta eliseo2, se ve con con la ayuda de ayer no fue bastante, espero que ahora sí.
muchas gracias por tu ayuda

Por gurdi1

8 de clabLevel



 

msie8

 

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