Buenas.
Soy medio nuevo en esto de AS y la verdad es que se lo justo. Estaba haciendo una pequeña animación para el menú de una página web.
La he hecho introduciendo 6 movie clips, uno dentro de otro[a modo de matrioskas... las muñecas rusas de madera, jeje. No sé si fue buena idea hacerlo así]. En cada MC, hay un botón que activa el MC siguiente y que querría que cerrase los anteriores que pudiesen estar abiertos. Para ello he utilizado if else if. No sé si es adecuado, pero en mi cabeza funcionaba. Cada botón lleva el siguiente código, ya sé que es muy largo, pero no le veía mejor solución pq cada botón tenía que interactuar con cada uno de los MC, a pesar de que estuviesen por encima.
on (release) {
if (_root.movtotal.mov22._currentframe=="40")
{
_root.movtotal.gotoAndPlay("arq 0 1");
_root.movtotal.mov22.gotoAndPlay("pai 1 0");
_root.movtotal.mov22.mov03.gotoAndPlay("dis 0");
_root.movtotal.mov22.mov03.mov04.gotoAndPlay("edi 0");
_root.movtotal.mov22.mov03.mov04.mov05.gotoAndPlay ("web 0");
_root.movtotal.mov22.mov03.mov04.mov05.mov06.gotoA ndPlay("inv 0");
}else if (_root.movtotal.mov22.mov03._currentframe=="40")
{
_root.movtotal.gotoAndPlay("arq 0 1");
_root.movtotal.mov22.gotoAndPlay("pai 0");
_root.movtotal.mov22.mov03.gotoAndPlay("dis 1 0");
_root.movtotal.mov22.mov03.mov04.gotoAndPlay("edi 0");
_root.movtotal.mov22.mov03.mov04.mov05.gotoAndPlay ("web 0");
_root.movtotal.mov22.mov03.mov04.mov05.mov06.gotoA ndPlay("inv 0");
}else if (_root.movtotal.mov22.mov03.mov04._currentframe==" 40")
{
_root.movtotal.gotoAndPlay("arq 0 1");
_root.movtotal.mov22.gotoAndPlay("pai 0");
_root.movtotal.mov22.mov03.gotoAndPlay("dis 0");
_root.movtotal.mov22.mov03.mov04.gotoAndPlay("edi 1 0");
_root.movtotal.mov22.mov03.mov04.mov05.gotoAndPlay ("web 0");
_root.movtotal.mov22.mov03.mov04.mov05.mov06.gotoA ndPlay("inv 0");
}else if (_root.movtotal.mov22.mov03.mov04.mov05._currentfr ame==40)
{
_root.movtotal.gotoAndPlay("arq 0 1");
_root.movtotal.mov22.gotoAndPlay("pai 0");
_root.movtotal.mov22.mov03.gotoAndPlay("dis 0");
_root.movtotal.mov22.mov03.mov04.gotoAndPlay("edi 0");
_root.movtotal.mov22.mov03.mov04.mov05.gotoAndPlay ("web 1 0");
_root.movtotal.mov22.mov03.mov04.mov05.mov06.gotoA ndPlay("inv 0")
}
else if (_root.movtotal.mov22.mov03.mov04.mov05.mov06._cur rentframe =="40")
{
_root.movtotal.gotoAndPlay("arq 0 1");
_root.movtotal.mov22.gotoAndPlay("pai 0");
_root.movtotal.mov22.mov03.gotoAndPlay("dis 0");
_root.movtotal.mov22.mov03.mov04.gotoAndPlay("edi 0");
_root.movtotal.mov22.mov03.mov04.mov05.gotoAndPlay ("web 1 0");
_root.movtotal.mov22.mov03.mov04.mov05.mov06.gotoA ndPlay("inv 0");
}else {
_root.movtotal.gotoAndPlay("arq 0 1");
}
}
Ya os digo que a mi el código me parece lógico y que debería de funcionar, pero la cuestión es que al final unicamente solo me abre el MC del botón y no influye sobre el resto.
**Una cosa que creo que es importante, cada MC se divide en 3 estados, uno de cierre[x 1 0], otro de apertura[x 0 1] y otro de estado en reposo [x 0]. Utilizo el currentframe para saber en que punto me encuentro de la línea de tiempo y con el gotoAndPlay me posiciono en cada una de las películas.
Si necesitais que suba el archivo a algún sitio, sin problema, solo decirlo.
Muchas gracias. Un saludo.