Comunidad de diseño web y desarrollo en internet online

easing y listener...

Citar            
MensajeEscrito el 23 Jun 2005 07:19 am
Hola, me encuentro con un problema, creo que todo viene dado por el efecto easing pero no lo tengo tan claro, ya que lo extraño es que cuando hago un test funciona y cuando lo veo en el navegador NO. La cuestion es la siguiente, haber si alguien lo ve:

Código :

_root.attachMovie("menu_mc", "menu_mc", 1, {_y:426});

movimiento_menu_principal = function(donde, direccion)
{
   menu_mc._y += (donde - menu_mc._y)/10;
   if (direccion == "subir" && menu_mc._y == 333) {clearInterval(mov_menu_principal);menu_mc._y = 333;}
   if (direccion == "bajar" && menu_mc._y == 425.55) {clearInterval(mov_menu_principal); menu_mc._y = 426;}   
}

miListener=new Object()
miListener.onMouseMove=function()
{
   if (_root.menu_mc._y == 426 && _ymouse > 333)  
   {
      mov_menu_principal = setInterval(movimiento_menu_principal, 5, "333", "subir");
   }
   if (_root.menu_mc._y  == 333 && _ymouse < 333)  
   {
      mov_menu_principal = setInterval(movimiento_menu_principal, 5, "426", "bajar");
   }
}
Mouse.addListener(miListener);
stop();


Bien, lo he validado todo, el easing no es capaz de darme el valor 426 por lo que me veo obligado a validarlo a 425.55, ¿por qué? no lo se, pero ....

El funcionamiento de esto es sencillo mi idea es que cuando el raton este en una posicion superior a 333 aparezca un objeto (menu_mc) y si la posicion es menor, desaparezca. En el caso de pulsar un boton del menu, anulare el listener, pero eso es otra guerra, ahora primero tengo que solucionar esto.

Alguien ve el fallo? Gracias
Ochio

Por ochio

23 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2005 07:34 am
cambia esto

Código :

movimiento_menu_principal = function(donde, direccion)
{
   menu_mc._y += (donde - menu_mc._y)/10;
   if (direccion == "subir" && menu_mc._y == 333) {clearInterval(mov_menu_principal);menu_mc._y = 333;}
   if (direccion == "bajar" && menu_mc._y == 425.55) {clearInterval(mov_menu_principal); menu_mc._y = 426;}   
} 


por esto

Código :

movimiento_menu_principal = function(donde, direccion)
{
   menu_mc._y += (donde - menu_mc._y)/10;
   if (direccion == "subir" && menu_mc._y <= 333) {clearInterval(mov_menu_principal);menu_mc._y = 333;}
   if (direccion == "bajar" && menu_mc._y >= 426) {clearInterval(mov_menu_principal); menu_mc._y = 426;}   
} 


Las comparaciones de números con == son peligrosas, ya que aqui:
menu_mc._y += (donde - menu_mc._y)/10;
le estás sumando una cantidad no entera, y luego sería casualidad que te coincidiera con un número exacto.

Las comparaciones con == de onMouseMove sí estan bien porque en el código de antes le estás asignando un valor exacto.

Otra cosilla más, estaría bien cambiar los número por constantes y no repetirlos tanto (no solo por no repetirlos, también es más facil de modificar ya que solo lo tendrías que cambiar en un sitio y además te evitas la posibilidad de cometer errores al escribirlos).

Espero que te sirva, saludos!

Por schs

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Jun 2005 10:39 am
Sigue sin funcionar, llevas razon con el tema de las constantes, pero primero me esta desesperando y lo he ido simplificando lo maximo, despues lo implementare, pero ahora quiero que funcione !!!!

Esto ya lo habia probado, llevas razon, pero no se por que razon no funciona...

Sigo dandole vueltas, espero encontrar el fallo...
Gracias. Ochio.

Por ochio

23 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2005 10:57 am
¿puedes hacer un
trace("donde + "- " direccion +"-" +menu_mc._y)
en la funcion movimiento_menu_principal para ver que valores va tomanto menu_mc._y y pegar la salida aquí?

Por schs

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Jun 2005 11:17 am
esto es lo que aparece en la ventana
333- subir-416.7
333- subir-408.3
333- subir-400.75
333- subir-393.95
333- subir-387.85
333- subir-382.35
333- subir-377.4
333- subir-372.95
333- subir-368.95
333- subir-365.35
333- subir-362.1
333- subir-359.15
333- subir-356.5
333- subir-354.15
333- subir-352
333- subir-350.1
333- subir-348.35
333- subir-346.8
333- subir-345.4
333- subir-344.15
333- subir-343
333- subir-342
333- subir-341.1
333- subir-340.25
333- subir-339.5
333- subir-338.85
333- subir-338.25
333- subir-337.7
333- subir-337.2
333- subir-336.75
333- subir-336.35
333- subir-336
333- subir-335.7
333- subir-335.4
333- subir-335.15
333- subir-334.9
333- subir-334.7
333- subir-334.5
333- subir-334.35
333- subir-334.2
333- subir-334.05
333- subir-333.9
333- subir-333.8
333- subir-333.7
333- subir-333.6
333- subir-333.5
333- subir-333.45
333- subir-333.4
333- subir-333.35
333- subir-333.3
333- subir-333.25
333- subir-333.2
333- subir-333.15
333- subir-333.1
333- subir-333.05
333- subir-333
426- bajar-342.3
426- bajar-350.65
426- bajar-358.15
426- bajar-364.9
426- bajar-371
426- bajar-376.5
426- bajar-381.45
426- bajar-385.9
426- bajar-389.9
426- bajar-393.5
426- bajar-396.75
426- bajar-399.65
426- bajar-402.25
426- bajar-404.6
426- bajar-406.7
426- bajar-408.6
426- bajar-410.3
426- bajar-411.85
426- bajar-413.25
426- bajar-414.5
426- bajar-415.65
426- bajar-416.65
426- bajar-417.55
426- bajar-418.35
426- bajar-419.1
426- bajar-419.75
426- bajar-420.35
426- bajar-420.9
426- bajar-421.4
426- bajar-421.85
426- bajar-422.25
426- bajar-422.6
426- bajar-422.9
426- bajar-423.2
426- bajar-423.45
426- bajar-423.7
426- bajar-423.9
426- bajar-424.1
426- bajar-424.25
426- bajar-424.4
426- bajar-424.55
426- bajar-424.65
426- bajar-424.75
426- bajar-424.85
426- bajar-424.95
426- bajar-425.05
426- bajar-425.1
426- bajar-425.15
426- bajar-425.2
426- bajar-425.25
426- bajar-425.3
426- bajar-425.35
426- bajar-425.4
426- bajar-425.45
426- bajar-425.5
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
426- bajar-425.55
....
....
....
infinitas veces

que ocurre, he probado a cambiar
if (direccion == "bajar" && menu_mc._y >= 426)
por if (direccion == "bajar" && menu_mc._y >= 425)

y parece que funciona pero solo si hago un test en el navegador no va...

Gracias.

Por ochio

23 de clabLevel



 

safari
Citar            
MensajeEscrito el 24 Jun 2005 05:53 pm
pues le he estado dando vueltas y no veo por donde falla... :oops:
que no funcione en el navegador pero fuera sí es raro. Si se me ocurre algo te lo diré

Por schs

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Jun 2005 06:00 pm
hola schs, he estado investigando un poco y conseguido hacer el mismo efecto pero de otra manera, utilizando mx.transitions, es nuevo en flash y nunca lo habia usado, y ademas es bastante mas facil de manejar, aqui te dejo el link donde he encontrado la informacion, tambien esta en la pagina de macromedia, espero que te sirva para futuros proyectos,
http://www.actionscript.org/tutorials/advanced/Tween-Easing_Classes_Documented/index.shtml

si tienes alguna duda en el futuro, espero poder ayudarte, gracias por el interes. ochio.

Por ochio

23 de clabLevel



 

safari

 

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