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

Deteccion del mouse fuera de zona

Estas en el tema de Deteccion del mouse fuera de zona en el foro de Flash y Actionscript en Foros del Web. Hola a todos. A ver si puedo explicarme bien... Partimos de un scrolling de texto que va corriendo a una velocidad dentro de un cuadro. ...
  #1 (permalink)  
Antiguo 19/04/2005, 06:30
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
Deteccion del mouse fuera de zona

Hola a todos.
A ver si puedo explicarme bien... Partimos de un scrolling de texto que va corriendo a una velocidad dentro de un cuadro. Si se situa el mouse en la parte superior del cuadro, el texto va corriendo más rápido... si se baja el mouse, va más lento... Si se pone el mouse en la parte inferior del cuadro el texto irá en dirección contraria, y segun la posición del mouse, irá más rápido o más lento.. Hasta aqui OK!
Ahora bien, cuando el usuario saca el mouse del cuadro, el texto ha de volver a la velocidad inicial. Eso lo hago con un borde de unos 5 o 10 pixels, que está alrededor del cuadro, de forma que cuando detecto que el mouse pasa por ahí, realizo la acción.
El problema es que no siempre detecta ese evento... Si paso muy rápido con el mouse se queda el texto a la velocidad incorrecta ya que no ha detectado el eveto y no paró la velocidad...
Mi pregunta es: Hay forma más segura de provocar esto que detectando el mouse en esa franja de 5 o 10 pixels? (Por ejemplo simplemente mirando si el mouse está en la pelicula o no... Pero esto, si es que se puede, no se hacerlo)

Aqui les dejo el código que uso hasta ahora, y que me da el problema:

Cita:
M_Texto.onEnterFrame = function() {
if((_ymouse>=10)and(_ymouse<=40)and(_xmouse>=10)an d(_xmouse<=130)) {
setProperty(M_Texto,_y,M_Texto._y+((40-_ymouse)/2));
if (M_Texto._y>=100) {setProperty(M_Texto,_y,-M_Texto._height);}
} else if ((_ymouse>=60)and(_ymouse<=90)and(_xmouse>=10)and( _xmouse<=130)and(-M_Texto._y<M_Texto._height)) {
setProperty(M_Texto,_y,M_Texto._y-((_ymouse-60)/2));
if (-M_Texto._y>=M_Texto._height) {setProperty(M_Texto,_y,100);}
} else if ((_ymouse>40)and(_ymouse<60)and(_xmouse>=10)and(_x mouse<=130)) {
setProperty(M_Texto,_y,M_Texto._y);
} else {
setProperty(M_Texto,_y,M_Texto._y-1);
if (-M_Texto._y>=M_Texto._height-50) {setProperty(M_Texto,_y,100);}
}
}
Gracias a todos.
  #2 (permalink)  
Antiguo 19/04/2005, 06:54
 
Fecha de Ingreso: febrero-2004
Ubicación: Carthagena
Mensajes: 205
Antigüedad: 13 años, 9 meses
Puntos: 0
Flash tiene una instruccion muy buena para detectar si esta sobre una zona... se llama hitArea, mira a ver si te sirve.
  #3 (permalink)  
Antiguo 19/04/2005, 07:02
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
OK. Miro un poco a ver y ya digo algo.
Gracias!
  #4 (permalink)  
Antiguo 19/04/2005, 11:08
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
Hola de nuevo.
He estado investigando un poco, pero no entiendo como me puede ayudar el HitArea.

Podrías ser un poco más explícito por favor? A la hora de aplicarlo en mi caso?

Yo controlo la posicion _x y la posicion _y del mouse para detectar en qué zona de la pelicula está situado... pero no tengo el evento que me dice si el mouse ha salido del area de la película, por eso uso el borde exterior para detectar la salida del mouse (que es el que falla).

Si realmente puedo usar hitarea para este proposito... como debería hacerlo..
Orientenme un poquito plis.
  #5 (permalink)  
Antiguo 21/04/2005, 03:35
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 12 años, 11 meses
Puntos: 9
OK. Pquitas ideas en este aspecto. En fin...

Se me ha ocurrido, añadir una llamada a la funcion que mueve el texto en el evento rollOut para así asegurar más el efecto.

Alguien podría decirme, dada esta función:

M_Texto.onEnterFrame = function() {
if(...){
...
...
}
}

Como la puedo llamar para que se ejecute, por ejemplo desde el evento rollOut del mismo M_Texto?

Sería algo así?

M_Texto.onEnterFrame()

Gracias por su ayuda.
__________________
..:: moNTeZIon ::..
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 22:32.