Comunidad de diseño web y desarrollo en internet online

Dónde está el MovieClip?

Citar            
MensajeEscrito el 19 Ago 2009 12:45 pm
Coloqué 5 MovieClips en el palco instanciandolos como mc0,mc1,mc2,mc3 y mc4, mi objetivo es que cuando por ejemplo sea clicado uno de ellos éste sea cargado dentro de un Sprite junto con los que se encuentren en posiciones inferiores. Por ejemplo, al ser clicado el mc3 ( index = 3 ) deben ser colocados en el Sprite el mc0, el mc1, el mc2 y el mc3 ).
El problema es que cuando estoy clicando en el mc1 son cargados el mc0 y el mc2.

Código ActionScript :

mc1.addEventListener( MouseEvent.CLICK, CLICK );
mc2.addEventListener( MouseEvent.CLICK, CLICK );
mc3.addEventListener( MouseEvent.CLICK, CLICK );
mc4.addEventListener( MouseEvent.CLICK, CLICK );

var YENDO:Sprite = new Sprite();
addChild ( YENDO );
var profundidad:int;

function CLICK ( e:MouseEvent ):void
{
   profundidad = getChildIndex(e.currentTarget as MovieClip);
   trace ( "Profundidad: " + profundidad );
        subir();
}

function subir():void
{
   for ( var i:int = 0; i <= profundidad; i++ )
   {
      YENDO.addChild( getChildAt( i ) );
      trace ( "i: "+ i );
   }
   verificar();
}

function verificar():void
{
   trace ( "YENDO numChildren :" + YENDO.numChildren );
   for ( var i:int = 0; i <= profundidad; i++ )
   {
      trace ( YENDO.getChildAt( i ).name );
   }
}


Desde ya muchas gracias por la ayuda. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Ago 2009 03:37 pm
Hola,
el problema está en la función subir, ya que al hacer:
YENDO.addChild( getChildAt( i ) );
estás sacando un movieclip de la lista de visualización del stage para ponerlo dentro del sprite YENDO. Haciendo esto ya no tienes los cuatro clips en la lista de visualización del stage, sino que tienes 3, y por eso getChildAt( i ) te devuelve un elemento por encima de lo que esperas.
Para solucionarlo sólo tienes que cambiar ese i por un 0 (el que esté en la profundidad más baja):
YENDO.addChild( getChildAt( 0 ) );

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Ago 2009 06:29 pm
Amigo Isidoro con tu explicación entendí perfectamente el problema y lo solucioné de la forma que indicaste.

Muchas gracias | Abrazo grande | Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

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