Comunidad de diseño web y desarrollo en internet online

Menu desplegable

Citar            
MensajeEscrito el 24 Oct 2008 09:15 am
Hola, necesito ayuda con un menú emergente que estoy usando.
He montado una página con un div que contiene la película flash y justo debajo otro con contenido html.
El problema es que el menú no se pliega correctamente, a veces se queda desplegado o hace movimientos extraños.
La película flash con el menú funciona correctamente por lo que supongo que el problema viene al integralo con el resto del contenido.
Decir también que estoy usando la propiedad wmode=transparent, por si pudiera influir.
El sitio es este: [url=]www.solida.com.es/pruebas[/url]
Gracias y un saludo.

Dejo el código que estoy usando (aprovecho a decir que no es mio):

Código :

onClipEvent (load) {
   _yfinal = -36;
   _yinicial = 70;
   _alphafinal=100;
   _alphainicial=0;
}
onClipEvent (enterFrame) {
   if (this.hitTest(_root._xmouse, _root._ymouse)) {

      _y += (_yfinal-_y)/4;
   } else {
      
      _y += (_yinicial-_y)/4;
   }
}

Por johnfreson

11 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Oct 2008 12:50 pm
Fíjate bien para que notes que el problema lo da cuando mueves el mouse hacia abajo, si lo haces hacia arriba no pasa nada, y esto me da por pensar que este código que has posteado debes tenerlo puesto en cada uno de los menús que se mueven hacia arriba y hacia abajo y en estos tienes aplicado una máscara. ¿Es esto cierto?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Oct 2008 06:44 pm
Hola elchininet, el código está puesto sólamente en la película principal y carga el clip que contiene los botones.
Los botones tienen un código onRollOver/onRollOut para hacer que el clip avance para mostrar los efectos de brillo.
Tampoco he usado mascaras, si te das cuenta el codigo que postee fijan un origen y un fin para que el clip haga el movimiento de subir.
Un saludo

Por johnfreson

11 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Oct 2008 06:56 pm
Me refiero a este código, dónde lo tienes situado:

Código ActionScript :

onClipEvent (load) {
   _yfinal = -36;
   _yinicial = 70;
   _alphafinal=100;
   _alphainicial=0;
}
onClipEvent (enterFrame) {
   if (this.hitTest(_root._xmouse, _root._ymouse)) {

      _y += (_yfinal-_y)/4;
   } else {
      
      _y += (_yinicial-_y)/4;
   }
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Oct 2008 06:57 pm
Lo que te recomiendo es lo siguiente,,,,,
crear en el boton del menu un rollover,
pero para el rollOut crear un boton con el tamaño de toda la pantalla que este debajo y se active al hacer rollover en el boton del menu, y contenga la accion de ocultar el menu, seria algo asi:

Código :

botonMenu_btn.onRollOver = function(){
        //la funcion que abre el submenu
        botonOut_btn.enabled=true;
}
//y en el botonOut_btn que esta debajo ponemos lo siguiente
botonOut_btn.onRollOver = function(){
        //la funcion que cierra el submenu
        botonOut_btn.enabled = false;
}

De esta forma hacemos que el rollOut no sea simplemente al salir del boton del menu sino mas bien que cuando pase por cuyalquier campo fuera del boton se cierre.
Esto arregla el problema ese que al salir rapido no se cierra, ahora al pasar por cualquier sector se cerrara, ya que tenemos un boton detector hecho al tamño de toda la pantalla el cual sera el encargado de cerrar el submenu.

Creo no haber sido muy claro, es que estoy en el trabajo medio a las apuradas
cualquier cosa pregunte ;)

Por agucapobianco

32 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Oct 2008 10:02 am
Hola de nuevo, en primer lugar gracias por vuestra ayuda.
Chininet el código está puesto sobre el mismo clip.
Agucapobiando, me parece bien tu idea pero siendo sincero no tengo ni idea de escribir el código.
La función que activa el submenú es el código que postee, o sea el clipevent.
Si puedes echarme una mano te lo agradezco.
Un saludo

Por johnfreson

11 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Oct 2008 09:35 pm
@johnfreson, si no aclaras bien las cosas este hilo será interminable, todavía no me has respondido la primera pregunta que te hice, te la he hecho dos veces y las dos veces respondes ambiguamente, pero al final no la respondes, una película como la que tienes puede tener infinitos movieClips, yo me imagino donde está situado el código, pero necesito que me lo confirmes, de ser así, sé donde está el problema, pero necesito que lo aclares:

elchininet escribió:

...y esto me da por pensar que este código que has posteado debes tenerlo puesto en cada uno de los menús que se mueven hacia arriba y hacia abajo y en estos tienes aplicado una máscara. ¿Es esto cierto?


Por favor dime si esto es cierto, porque la siguientes respuestas no dicen nada:

johnfreson escribió:

Hola elchininet, el código está puesto sólamente en la película principal y carga el clip que contiene los botones.


johnfreson escribió:

Chininet el código está puesto sobre el mismo clip.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 28 Oct 2008 06:28 pm
Efectivamente el código está puesto sobre el clip del submenú que se despliega y este está dentro de una máscara. El botón desde el que se despliega el submenú no tiene nada de código (sólo cambia de color con el ratón sobre él).
Alargué el tamaño del clip (no de la máscara) y ahora no hace efectos raros cuando pasas el ratón debajo si no que directamente se despliega.
El problema de que no se vuelve a plegar pasa cuando sales de la película flash por debajo del clip ya que si te desplazas a cualquier otro lado el clip se pliega.
Espero haberme explicado correctamente esta vez.
Un saludo,

Por johnfreson

11 de clabLevel



 

safari
Citar            
MensajeEscrito el 03 Nov 2008 07:06 pm
Bueno entonces esto confirma lo que pensaba.
Mira... un hitTest se realiza con un MovieClip no importa si este está enmascarado, por lo tanto aunque no lo veas, cuando el movieClip se cierra este sobrepasa la parte inferior del menú, por lo tanto si mueves el mouse hasta este lugar dejas de hacer hitTest por lo tanto el movieClip busca animarse hacia abajo y rapidamente vuelve a hacer hitTest por lo tanto se anima hacia arriba y entonces deja de hacer hitTest y así continuamente, por eso el efecto raro. Una solución sería que aparte del hitTest pongas una condición de posición del mouse, esto me parece que lo solucionaría:

Código ActionScript :

onClipEvent (enterFrame) {
   if (this.hitTest(_root._xmouse, _root._ymouse) && _root._ymouse < coordenada) {

      _y += (_yfinal - _y) / 4;
      
   } else{

      _y += (_yinicial - _y) / 4;
      
   }
}


solo debes tener en cuenta que "coordenada" sería el valor en las "_y" de la parte de abajo del menú.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 12 Nov 2008 11:16 am
Tenias toda la razón, ahora me funciona correctamente.
Muchísimas gracias.

Un saludo.

Por johnfreson

11 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.