Si te aparece debajo es porque as es un lenguaje de flujo (no se detiene a terminar una orden para empezar otra, como PHP, por ejemplo) asi es que, aunque sea la última orden, el marco de fotos es el primer objeto que se coloca en la lista de visualizacióin así que el navegador lo pone el primero, y, por tanto, lo demás, que tarda un poco más, lo pone encima en razón de una propiedad llamada z que es como el z-index en CSS.
Por esto es que solo tienes que asegurarte que, salga a escena cuando quiera que salga, que se va a colocar encima de todo.
Un ejemplo sería asígnarle a los demás objetos un z de 0 o 1:
Código ActionScript :
elemento.z = 1;
y al marco un 2:
Código ActionScript :
marcodefotos.z = 2;
Así te aseguras que siempre estará por encima.
Eso si no te importa el orden en que aparezcan las otras formas.
Si quieres jugar más con niveles tienes esta función que no he probado pero parece buena en teoria:
Código ActionScript :
function traerAlFrente(MC:MovieClip):void{
//Esta variable obtiene la posición (profundidad) del MovieClip
var pos:Number = this.getChildIndex(MC)
//Mientras que el clip no se encuentre por encima
//del resto, se ejecutará la siguiente función
while(pos < this.numChildren - 1){
//La variable "siguiente" obtiene el
//MovieClip inmediatamente superior
var siguiente:MovieClip = this.getChildAt(pos+1) as MovieClip
//Se intercambia la posición de los dos clips
this.swapChildren(MC,siguiente)
//Actualizamos el valor de la variable "pos"
pos = this.getChildIndex(MC)
}
}
Este es el post de donde lo he sacado y que te recomiendo que leas:
swapDepths y getNextHighestDepth en Actionscript 3 (por: nestorrente)