Estoy desarrollando un menu desplegable en flash, el cual me ha ido bien hasta ahora...excepto un detalle: que cuando se apriete un boton del menu principal que no sea la opcion desplegada, dicha opcion se repliegue para que quede como en el estado inicial y se despliegue la opcion que seleccione, pero me di cuenta que hay un problema en el gotoAndPlay, ya que solo reproduce el segundo paso, es decir, despliega la nueva opcion y salta el paso de plegarse (pero si por el contrario elimino la llamada al gotoAndPlay(nueva_opcion), solo reproduce la opcion de repliegue), lo que creo que esta mal es que el flash no espera a que termine la primera de reproducirse y empieza la segunda, si alguien me echa una ayuda con eso se lo agradeceria, les pongo el codigo AS que hice, no es una obra de arte, pero hasta ahora me ha funcionado de maravilla, si necesitan algun otro detalle me lo hacen saber, gracias.
CODIGO AS(2.0):
Código:
Disculpan si los abarrote con comentarios, cualquier cosa me avisan, muchas gracias var activo:Number=0;//variable para determinar que submenu esta desplegado var sub:Boolean=false;//variable para saber si el menu esta desplegado o no function comprobar (){//basicamente lo que hace esta funcion es verificar que opcion del menu esta desplegada y la repliega. if(activo==1){ gotoAndPlay("unsub1");//unsub=secuencia de repliegue de la opcion activo=0;sub=false;//avisa que menu esta compacto,ninguna opcion activa } if(activo==2){ gotoAndPlay("unsub2"); activo=0;sub=false; } if(activo==3){ gotoAndPlay("unsub3"); activo=0;sub=false; } if(activo==4){ gotoAndPlay("unsub4"); activo=0;sub=false; } if(activo==5){ gotoAndPlay("unsub5"); activo=0;sub=false; } } byv.onRelease=function(){//byv=nombre de boton if(sub==false){//si el menu no esta desplegado,entonces despliega la opcion gotoAndPlay("sub1");//sub=secuencia de despliegue de la opcion sub=true; activo=1;//menu esta desplegado, opcion 1 activa } else {//si el menu ya estaba desplegado,repliegalo if(activo==1){//si la opcion desplegada es la misma que la opcion a desplegar, entonces solo repliega la opcion gotoAndPlay("unsub1"); activo=0;sub=false;//menu esta compacto, ninguna opcion activa }else{//si la opcion desplegada es distinta que la opcion a desplegar, entonces repliega el menu y luego despliega la opcion deseada comprobar();//ver arriba lo que hace la funcion gotoAndPlay("sub1");//despues de que la funcion compacte el menu, aqui se despliega la nueva opcion sub=true; activo=1;//menu esta desplegado, opcion 1 activa } } } /*las otras 3 opciones que no puse son iguales a estas 2, solo cambiando los numeros de sub, unsub,activo, etc */ clientes.onRelease=function(){ if(sub==false){ gotoAndPlay("sub2"); sub=true; activo=2; } else { if(activo==2){ gotoAndPlay("unsub2"); activo=0;sub=false; }else{ comprobar(); gotoAndPlay("sub2"); sub=true; activo=2; } } }