Cuando trabajamos con varios clip a la vez necesitamos darles un orden o que al cogerlos estos se posicionen en el nivel superior para que no sea tapado por los otros clip al desplazarlo, por ejemplo en un rompecabezas.
Para hacerlo tenemos varias funciones que nos pueden ayudar, como son setChildIndex, swapChildren y swapChildrenAt.
Código :
setChildIndex(child:DisplayObject, index:int):void swapChildren(child1:DisplayObject, child2:DisplayObject):void swapChildrenAt(index1:int, index2:int):void
Código :
//FOTOGRAMA 1
stop();
listar_btn.addEventListener(MouseEvent.CLICK, onListar);
function onListar(evt:MouseEvent):void
{
listChilds(this);
}
cambiar_btn.addEventListener(MouseEvent.CLICK, onCambiar);
function onCambiar(evt:MouseEvent):void
{
swapChild( clip1_mc, clip2_mc );
}
siguiente_btn.addEventListener(MouseEvent.CLICK, onSiguiente);
function onSiguiente(evt:MouseEvent):void
{
nextFrame();
}
/* FUNCIONES */
function listChilds(mc:MovieClip):void
{
trace_txt.text += "=============>\n";
for(var i:int=0; i < mc.numChildren; i++)
{
trace_txt.text += i.toString() + ' ' + String(mc.getChildAt(i)) + ' ' + mc.getChildAt(i).name + '\n';
}
}
function swapChild(mc1:MovieClip,mc2:MovieClip):void
{
if( mc1.parent != mc2.parent ) return;
var base:MovieClip = mc1.parent as MovieClip;
base.swapChildrenAt( base.getChildIndex(mc1), base.getChildIndex(mc2) );
}Código :
//FOTOGRAMA 2
anterior_btn.addEventListener(MouseEvent.CLICK, onAnterior);
function onAnterior(evt:MouseEvent):void
{
gotoAndStop( this.currentFrame - 1 );
}Código :
//FOTOGRAMA 1
stop();
listar_btn.addEventListener(MouseEvent.CLICK, onListar);
function onListar(evt:MouseEvent):void
{
listChilds(cont_mc);
}
cambiar_btn.addEventListener(MouseEvent.CLICK, onCambiar);
function onCambiar(evt:MouseEvent):void
{
swapChild( cont_mc.clip1_mc, cont_mc.clip2_mc );
}
siguiente_btn.addEventListener(MouseEvent.CLICK, onSiguiente);
function onSiguiente(evt:MouseEvent):void
{
nextFrame();
}
/* FUNCIONES */
function listChilds(mc:MovieClip):void
{
trace_txt.text += "=============>\n";
for(var i:int=0; i < mc.numChildren; i++)
{
trace_txt.text += i.toString() + ' ' + String(mc.getChildAt(i)) + ' ' + mc.getChildAt(i).name + '\n';
}
}
function swapChild(mc1:MovieClip,mc2:MovieClip):void
{
if( mc1.parent != mc2.parent ) return;
var base:MovieClip = mc1.parent as MovieClip;
base.swapChildrenAt( base.getChildIndex(mc1), base.getChildIndex(mc2) );
}Código :
//FOTOGRAMA 2
anterior_btn.addEventListener(MouseEvent.CLICK, onAnterior);
function onAnterior(evt:MouseEvent):void
{
gotoAndStop( this.currentFrame - 1 );
}