Pregunta

Siempre que escribo código de manejo del ratón, el / onmouseup / modelo onmousemove onMouseDown siempre me pareció forzar a producir código innecesariamente compleja que aún así terminar causando todo tipo de errores de interfaz de usuario.

El principal problema que veo incluso en grandes piezas de software en estos días es el evento "fantasma del ratón" en la que arrastra al lado de la ventana y luego dejar ir. Una vez que regrese de nuevo en la ventana, la aplicación todavía piensa que tiene el ratón hacia abajo a pesar de que el botón está arriba. Esto es especialmente molesto cuando estás tratando de poner de relieve algo que va a la frontera de la pantalla.

¿Hay una manera correcta de escribir código ratón o es todo el modelo sólo es deficiente?

¿Fue útil?

Solución

Por lo general uno capta los eventos del ratón sobre el ratón hacia abajo de modo que el movimiento del ratón y el ratón hacia arriba pasan por su código, independientemente del cursor se mueve fuera de usted ventana de la aplicación.

Más recientemente, este es un problema cuando se ejecuta una sesión de máquina virtual o remota, es difícil para las aplicaciones de estos para realizar el seguimiento del ratón fuera del área de pantalla de la máquina representada por una ventana en un host.

Otros consejos

No estoy seguro de qué entorno se está tratando de realizar un seguimiento de los botones del ratón en, pero la mejor manera de manejar esto es tener un detector de ratón que hace un seguimiento onmouseup 100% de las veces después de haber detectado onMouseDown.

De esa manera, no importa lo que la pantalla región el usuario suelta el botón del ratón. Vuelve a reiniciar sin importar dónde ocurre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top