Cada ficha se corresponde con un movieclip (ocho en total) y el noveno, del espacio hueco, es un movie clip llamado "invisible". El tamaño de los cuadros es de 160x140.
Este es el código que pongo en cada movieclip-ficha:
on (press) {
if (this._x==_root.invisible._x+140){
if (this._y==_root.invisible._y){
this._x-=140;
_root.invisible._x+=140;
}
}else if (this._x==_root.invisible._x-140){
if (this._y==_root.invisible._y){
this._x+=140;
_root.invisible._x-=140;
}
}else if (this._y==_root.invisible._y+120){
if (this._x==_root.invisible._x){
this._y-=120;
_root.invisible._y+=120;
}
}else if (this._y==_root.invisible._y-120){
if (this._x==_root.invisible._x){
this._y+=120;
_root.invisible._y-=120;
}
}
}
Mediante el cual se comprueba que esté a la derecha, izquierda, arriba o abajo del "invisible", pero pegado (porque sino no se puede mover). Y que una vez sabida su posición, al apretarlo vaya al lugar en el que estaba "invisible" y este vaya a donde estaba la ficha, se intercambian el lugar.
Hasta ahí todo correcto.
El problema viene cuando se resuelve el puzzle, en este punto quiero que, cuando cad ficha esté en su lugar correspondiente, la película que se encuentra en el fotograma 1, vaya al 2 para que ahí salga la imagen y un mensajito o lo que sea de felicidades.
Para ello pongo este código en el fotograma 1:
if (_root.uno._x==20 and
_root.uno._y==20 and
_root.dos._x==160 and
_root.dos._y==20 and
_root.tres._x==300 and
_root.tres._y==20 and
_root.cuatro._x==20 and
_root.cuatro._y==140 and
_root.cinco._x==160 and
_root.cinco._y==140 and
_root.seis._x==300 and
_root.seis._y==140 and
_root.siete._x==20 and
_root.siete._y==260 and
_root.ocho._x==160 and
_root.ocho._y==260 ) {
_root.gotoAndStop("Escena 1",2);
}
Ahí están los nombres de los movieclips-fichas y cual es su posición correcta en el puzzle resuelto. El problema es que cuando resuelvo el puzzle y cada ficha está exactamente en ese lugar, no va al fotograma 2 y se queda donde está.
Ese es el problema y no sé porqué.
He probado a exportar directamente la película con todas las fichas ya colocadas en su lugar resuelto, y entonces SÍ que va al fotograma 2 directo... Pero cuando en el .fla vuelvo a descolocar las fichas para que en el inicio del .swf esté descolocado y lo resuelvo yo mismo, entonces no funciona; es decir que no funciona después de que yo mueva las fichas para resolverlo (aunque sólo sea una vez).
He probado con está otra alternativa, creando otro movieclip más pequeño encima del lugar en el que cada ficha está resuelta:
if (_root.uno.hitTest(_root.eluno) and
_root.dos.hitTest(_root.eldos) and
_root.tres.hitTest(_root.eltres) and
_root.cuatro.hitTest(_root.elcuatro) and
_root.cinco.hitTest(_root.elcinco) and
_root.seis.hitTest(_root.elseis) and
_root.siete.hitTest(_root.elsiete) and
_root.ocho.hitTest(_root.elocho)) {
_root.gotoAndStop("Escena 1",2);
}
pero sucede lo mismo exactamente que con la otra solución. Me lo reconoce cuando exporto el puzle ya resuelto. PEro claro, se ha de exportar descolocado, y es entonces, cuando el usuario resuelve la película moviendo las fichas cuando no funciona.
Algo sucede cuando se mueven las fichas, pues entonces ya deja de reconocer cuando está resuelto el puzzle.
Lo siento por lo farragoso de mi explicación.
Agradezco vuestras respuestas, un saludo .
