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

Detectar cuando al mouse esta fuera del escenario

Estas en el tema de Detectar cuando al mouse esta fuera del escenario en el foro de Flash y Actionscript en Foros del Web. Hola me baje un ejemplo de un menu rotativo 3D que ya adapte a mis necesidades, (por las dudas aclaro que programo con ActionScript 2.0). ...
  #1 (permalink)  
Antiguo 15/06/2010, 18:35
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Detectar cuando al mouse esta fuera del escenario

Hola me baje un ejemplo de un menu rotativo 3D que ya adapte a mis necesidades, (por las dudas aclaro que programo con ActionScript 2.0). Lo unico que no logro es que cuando el mouse se encuentre fuera del escenario la rotacion de dicho menu se detenga, pero es simplemente porque no se como detectar que el mouse esta fuera del escenario. Probe hacer un par de if preguntando si las coordendas del mismo tanto en x como en y eran superiores al tamaño de mi pelicula o inferiores a cero pero no resulta... les agradeceré cualquier ayuda.

Tomás.
  #2 (permalink)  
Antiguo 15/06/2010, 19:18
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Detectar cuando al mouse esta fuera del escenario

Hola
ya probaste con la función rollOut?
Código actionscript:
Ver original
  1. on(rollOut){
  2.    // lo que quieres que se ejecute
  3. }
si ya probaste y nada, intenta poner un movieclip y
asignarle este rollOut, y si te funciona, pues te recomendaría
agregar todo lo que tienes dentro de ese mc
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 17/06/2010, 18:08
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: Detectar cuando al mouse esta fuera del escenario

Ok voy a probarlo y luego te comento. Gracias por la ayuda.
  #4 (permalink)  
Antiguo 14/10/2010, 19:16
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: Detectar cuando al mouse esta fuera del escenario

Lamendo las demoras pero aun lo he logrado detectar cuando el mouse esta afuera del escenario! Ahora estoy en otro proyecto pero me topo de nuevo con el mismo problema. Se trata de una barra de imagenes que debe moverse mientras el mouse esta sobre la misma a una velocidad, pero cuando este se retira de la pelicula dicha velocidad debe disminuir. A su vez debe poder hacer clic sobre cada imagen. Logro casi todo pero no encuentro la forma de saber cuando el mouse no esta en el escenario...
  #5 (permalink)  
Antiguo 15/10/2010, 02:59
Avatar de dvpareja  
Fecha de Ingreso: junio-2010
Ubicación: Vélez-Málaga
Mensajes: 126
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Detectar cuando al mouse esta fuera del escenario

Por ejemplo:

Código ACTIONSCRIPT:
Ver original
  1. onClipEvent(mouseMove){
  2.       if(!this.hitTest(_root._xmouse, _root._ymouse, true)){
  3.          stopDrag();
  4.        }
  5.    }

Suerte
  #6 (permalink)  
Antiguo 15/10/2010, 10:52
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: Detectar cuando al mouse esta fuera del escenario

Gracias por la respuesta, pero necesito un poco mas de directivas ¿donde iria este codigo?
  #7 (permalink)  
Antiguo 15/10/2010, 11:46
Avatar de dvpareja  
Fecha de Ingreso: junio-2010
Ubicación: Vélez-Málaga
Mensajes: 126
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Detectar cuando al mouse esta fuera del escenario

Estuve probando y tenía un error, este es el código bueno
Código ACTIONSCRIPT:
Ver original
  1. onMouseMove = function()
  2.    {
  3.       if (!this.hitTest(_root._xmouse, _root._ymouse, true)) {
  4.          // Aqui lo que quieres que haga
  5.       }
  6.    }

Así, colocado en el primer fotograma tal cual, detectará cuando sales del escenario.

Si por ejemplo, colocas esto

Código ACTIONSCRIPT:
Ver original
  1. miclip.onMouseMove = function()
  2.    {
  3.       if (!this.hitTest(_root._xmouse, _root._ymouse, true)) {
  4.          stopDrag();
  5.       }

Detectará cuando sale de los límites del clip instanciado y ejecutará las acciones.

Espero que te sirva, un saludo.
  #8 (permalink)  
Antiguo 15/10/2010, 13:24
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: Detectar cuando al mouse esta fuera del escenario

Bueno he probado el codigo y funciona a medias, no es muy seguro, puesto que sí detecta cuando el mouse sale de los límites del clip instanciado, pero en mi caso dicho clip ocupa el escenario completo y por lo tanto mientras el mouse este dentro del escenario esta en contacto con el clip. Cuando lo saco del escenario no lo detecta porque por lo que entiendo _xmouse e _ymouse guardan los últimos valores que tenian cuando el puntero se encontraba dentro del escenario.
La prueba que hice fue agrandar el escenario de modo que haya un margen entre mi clip y los limites del escenario, y ahí sí el código comienza a funcionar mejor. El problema es que puedo agrandar el escenario en altura, pero no en anchura puesto que lo que muestro es una tira de imagenes que leo desde un XML que me lo generan dinámicamente con PHP. Por lo tanto nunca que se que ancho va a tener el clip.
¡No puedo creer que no haya una forma sencilla de detectar si el mouse está o no dentro del escenario! Bueno seguiré luchando si piensan que puede ayudar les envío mi .fla para que lo vean... Desde ya gracias a todos por sus respuestas.
  #9 (permalink)  
Antiguo 15/10/2010, 15:38
Avatar de dvpareja  
Fecha de Ingreso: junio-2010
Ubicación: Vélez-Málaga
Mensajes: 126
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Detectar cuando al mouse esta fuera del escenario

Se me ocurre, así a lo bestia...
Código ACTIONSCRIPT:
Ver original
  1. miclip.onMouseMove = function()
  2.    {
  3.        xpos = 102*(Math.abs(this._xmouse))/100;
  4.        ypos = 102*(Math.abs(this._ymouse))/100;
  5.       if ((Math.abs(getBounds(miclip).xMax) < xpos)||
  6.           (Math.abs(getBounds(miclip).yMax) < ypos)||
  7.           (Math.abs(getBounds(miclip).xMin) < xpos)||
  8.           (Math.abs(getBounds(miclip).yMin) < ypos))
  9.         {
  10.         // Tus acciones
  11.     }
  12.    }

También se me ocurre usar FlashVars, desde JavaScript puedes detectar la posición del ratón en una div:

document.getElementById('flash').onmousemove=una_f uncion

la funcion 'una_funcion()' se encarga de recoger la posicion del mouse sobre la ventana;

por tanto, si la posición está fuera del limite de tu capa DIV donde tengas la pelicula, puedes enviarle a Flash que el ratón no está con él.
Esto es sólo una teoría, no lo he probado, ya nos contarás...

Suerte !!

Última edición por dvpareja; 15/10/2010 a las 15:47
  #10 (permalink)  
Antiguo 25/10/2010, 10:02
 
Fecha de Ingreso: mayo-2003
Mensajes: 523
Antigüedad: 20 años, 11 meses
Puntos: 6
Respuesta: Detectar cuando al mouse esta fuera del escenario

Probe la primera solucion y no me funciona en absoluto. Es como que el if se cumple todo el tiempo, es decir el efecto es como si el mouse estuviera siempre fuera del escenario. No la termino de entender quizas deba hacerle alguna adaptacion yo la copie tal cual. Ese numero 102 ¿de donde sale?

La segunda solucion me parece interesante pero no se si tengo los conocimientos como para implementarla. Quizas si la detallas un poco mas puedo intentarla. ¿Como seria la funcion que recoge las coordenadas? ¿Como le aviso a Flash que el mouse se encuentra fuera del escenario?

Etiquetas: cuando, detectar, escenario, fuera, mouse
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 11:32.