Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2006, 11:30
elishet
 
Fecha de Ingreso: febrero-2006
Mensajes: 39
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta error en menu botones desplegables

Hola, no hay manera de que me salga un menú que estoy haciendo. Cada cosa que retoco va a peor. A ver si me podeis ayudar, es bastante lioso...

Consiste en tres botones que se solapan entre ellos como si fueran pestañas. Algo así:
__________ ____ ____
..........b_1 | b_2| b_3|

Por defecto tengo el b_1 desplegado, cuando pase el mouse por el botón b_2, ese se desplegará hacia la derecha, así:
__________ __________ ___
..........b_1 |..........b_2| b_3|

y cuando quite el mouse de encima volvera a plegarse.

Si hago click en el b_2, entonces se ocultará el b_1 y quedará desplegado el b_2:
_____ _________ ____
b_1 |..........b_2| b_3|

Y así con el resto.

La animación la he hecho, teniendo en cuenta todas las opciones posibles en cada estado,y en los inicios de cada animación he puesto una etiqueta en el frame para así hacer referencia a ella en el código.(p.ej:
"comena"-->este para el comienzo de la animación de desplegar el boton 1 cuando el activo (el desplegado) es el 2
"fina"-->este para la animación de plegar el boton 1 cuando el activo (el desplegado) es el 2,
"comb"-->este para el comienzo de la animación de desplegar el boton 2 cuando el activo (el desplegado) es el 1 ,
"comena2"-->este para el comienzo de la animación de desplegar el boton 1 cuando el 3 esta desplegado,
actiua-->estado activo del botón 1, es decir desplegado y el resto plegados
etc.)
Evidentemente, en la línea de tiempo, he puesto al final de las animaciones stop();

En el 1r frame de la capa acciones he puesto el código siguiente:
Cita:
funcionant="a";
proper="";
b_1.onRollOver=function(){
if(funcionant="a"){si el activo es el b_1, es decir desplegado fijo
stop();
}
else if(funcionant="b"){en este caso el b_2
gotoAndPlay("comena");Vaya al comienzo de la animación donde se despliega la pestaña del b_1 cuando el b_2 es el activo, el que esta desplegado
}
else{
gotoAndPlay ("comena2");Vaya al comienzo de la animación donde se despliega la pestaña del b_1 cuando el b_3 es el activo, el que esta desplegado
}
}
b_1.onRollOut=function(){
if (proper != "a"){Si no he pulsado en el b_1 para que sea el activo
if(funcionant="a"){
gotoAndStop("actiua");Vaya y pare en el b_1 activo, desplegado
}
else if(funcionant="b"){
gotoAndPlay("fina");Se pliegue la pestanya del b_1 cuando el b_2 es el activo
}
else{
gotoAndPlay ("fina2");Se pliegue la pestanya del b_1 cuando el b_3 es el activo
}
}
else{stop();}
}
b_1.onRelease=function(){
proper="a";Indica que el siguiente activo será el b_1
if(funcionant="a"){
gotoAndStop("actiua");
funcionant="a"
}
else if(funcionant="b"){
gotoAndPlay("finb");
funcionant="a"
}
else{
gotoAndPlay ("finc");
funcionant="a"
}
}

b_2.onRollOver=function(){
if(funcionant="a"){
gotoAndPlay ("comenb");
}
else if(funcionant="b"){
gotoAndStop("actiub");
}
else{
gotoAndPlay("comenb2");
}
}
b_2.onRollOut=function(){
if (proper != "b"){
if(funcionant="a"){
gotoAndPlay ("finb");
}
else if(funcionant="b"){
gotoAndStop("actiub");
}
else{
gotoAndPlay("finb2");
}
}
else{stop();}
}
b_2.onRelease=function(){
proper="b";
if(funcionant="a"){
gotoAndPlay ("fina");
funcionant="b";
}
else if(funcionant="b"){
gotoAndStop("actiub");
funcionant="b";
}
else{
gotoAndPlay("finc2");
funcionant="b";
}
}

b_3.onRollOver=function(){
if(funcionant="a"){
gotoAndPlay ("comenc");
}
else if(funcionant="b"){
gotoAndPlay("comenc2");
}
else{
gotoAndStop("actiuc");
}
}
b_3.onRollOut=function(){
if (proper != "c"){
if(funcionant="a"){
gotoAndPlay ("finc");
}
else if(funcionant="b"){
gotoAndPlay("finc2");
}
else{
gotoAndStop("actiuc");
}
}
else{stop();}
}
b_3.onRelease=function(){
proper="c";
if(funcionant="a"){
gotoAndPlay ("fina2");
funcionant="c";
}
else if(funcionant="b"){
gotoAndPlay("finb2");
funcionant="c";
}
else{
gotoAndStop("actiuc");
funcionant="c";
}
}
stop();
La animación me va bien pero me falla el hecho de que creo, porque sino no me lo explico, a veces no me guarda el valor de "funcionant" (para saber la que esta desplagada), de modo que, al inicio, una vez ejecuto esta desplagado el b_1, pero a la que paso por cualquier botón(rollover), incluso el 1, se pone desplegado fijo (es decir activo, el que esta funcionando desplegado, como si hubiera pulsado y no lo he hecho) el b_3. Si clicko en el 2 por ejemplo,entonces se me pone bien se despliega el 2 y se oculta el resto pero sio aparto el mouse y le vuelvo a poner en el 2, me hace de nuevo lo mismo, activa el 3 y empieza de nuevo con la animación del 2.

No se si os enterareis de lo que pasa porque así explicado aún es más lioso, pero a ver si alguien puede echarme una mano...

Última edición por elishet; 15/02/2006 a las 11:37