Os traigo un problemita que seguro alguien tiene idea de como solucionarlo.
Veréis, estoy haciendo un juego en flash que consiste en que en una cuadricula un muñequito se mueve para conseguir llegar a distintas casillas hasta marcar las que toca.
Esto no tendría mayor problema, pero resulta que el usuario puede crear sus pantallas y hacer que las casillas de la cuadricula suban de nivel formando bloques que se han de esquivar o de saltar.
Esto también esta bien, pero el problema esta en que cuando el muñequito esta justo detrás de alguna cuadricula que ha "crecido" y se han convertido en bloques, no da el efecto que este por detrás de ella, ya que el muñeco esta una capa por encima de las casillas.
Se me había ocurrido traer al frente (o por lo menos una capa por encima de la del muñeco) a las casillas que se convierten en bloques, pero me esta dando un fallo.
No se como hacerlo exactamente, ya que las casillas las tengo colocadas directamente en el stage y mediante un .txt cargo la pantalla creada por el usuario, cambiando el frame de la casilla (las casillas son unos MCs con distintos frames, en los que en cada frame esta el nivel de bloque que se quiere dar).
He probado con .setChildIndex(0), de este modo (la película de flash la cargo en Flex):
Código ActionScript :
private function show(evt:Event):void
{
fichero = root.parent.parent['parentApplication']['cf'];
c.text = fichero;
var valor:int = 0;
var aux:int = 2;
for (var i = 0; i < 8; i++)
{
for (var j = 0; j < 8; j++)
{
valor = int(fichero.charAt(aux));
matrizCasillas[i][j].IrAFrame(valor);
if (valor > 1)
{
matrizCasillas[i][j].setChildIndex(this, 0);
}
aux++;
}
}pero me da este fallo (el fallo es desde flex, que es donde lo pruebo):
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/setChildIndex()
at ClasePrincipal/show()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]
at Demo6/loadHandler()[/Users/seiya/Programas/lo que hago en Flex/Demo6/src/Demo6.mxml:43]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at com.zigzah.utils::FileLoader/makeBytes()[/Users/seiya/Programas/lo que hago en Flex/Demo6/src/com/zigzah/utils/FileLoader.as:56]
Supongo que hay algún fallo en como hago la llamada en .setChildIndex, pero no se cual es el fallo, posiblemente tenga que poner algo en lugar del this, pero no lo se.
Creo que si consigo hacer que los objetos vayan y vengan al frente y atrás tendré casi todo lo que necesito, así que si alguien se le ocurre como hacerlo le estaré muy muy agradecido.
Muchas gracias!
