Foros del Web » Creando para Internet » Flash y Actionscript »

else if no funciona

Estas en el tema de else if no funciona en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/04/2009, 12:41
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
else if no funciona

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.
  #2 (permalink)  
Antiguo 10/04/2009, 16:58
Avatar de Ludwingg  
Fecha de Ingreso: diciembre-2002
Ubicación: San Salvador
Mensajes: 951
Antigüedad: 21 años, 11 meses
Puntos: 5
Respuesta: else if no funciona

_currentframe espera un valor numerico, no string

Lo siguiente es erroneo
Código:
if (_root.movtotal.mov22._currentframe=="40")
Debería ser asi:
Código:
if (_root.movtotal.mov22._currentframe==40)
El valor sin comillas.

Saludos
  #3 (permalink)  
Antiguo 25/05/2009, 08:21
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: else if no funciona

Buenas.

Siento la tardanza en la respuesta. No me he puesto con esto hasta hace muy poco tiempo. La solución fue muy buena y casi todo funciona. Solo una cosita más, resulta que en el archivo[es el mismo que el de la anterior cuestión] que pongo a continuación.

Cada pestaña se cierra cuando les das a que se abrá otra; todo esta perfecto en ese sentido, pero pasa con todas menos con la primera y entre la segunda y la tercera, que al pinchar sobre ellas no cierra la que está abierta y la verdad es que tampoco sé por qué es, he estado analizando todo el código y no sé lo que he puesto mal; incluso lo he impreso y lo he repasado comparando los códigos que funcionan y los que no, pero no veo la diferencia.

adjunto el link en el que visualizar la animación.

[No puedo adjuntarlo por no tener veteranía, si alguien me dice como hacerlo, se lo agradezco]

adjunto el link para descargar el archivo de FL, por si a alguien se le ocurriese como solucionarlo.

[No puedo adjuntarlo por no tener veteranía, si alguien me dice como hacerlo, se lo agradezco]

Ante todo muchas gracias y siento la tardanza en contestar.

OZZ
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:30.