Haz que la limpieza sea idempotente
Cuando el puntero comienza a arrastrar, almacena el pointerId activo y el objeto o acción que posee. Tanto pointerup como pointercancel deberían finalizar esa interacción y borrar su estado. Escriba la limpieza para que llamarla después de una acción ya finalizada sea inofensivo; esto simplifica el manejo de la pérdida de captura, los cambios de ventanas y la limpieza defensiva repetida.
Si utiliza la captura de puntero, escuche lostpointercapture como otra señal de que la interacción ya no es propietaria del puntero. No interpretes la cancelación como una colocación completada correctamente a menos que el juego defina explícitamente ese resultado. Un arrastre cancelado podría devolver un objeto a su posición inicial, mantener la última posición válida o cancelar el movimiento; Elija una regla y comuníquesela con una señal visual.
Probar cuándo el navegador toma el control de los gestos
Prueba un arrastre que comienza en la superficie del juego y continúa hacia el borde de la pantalla, un desplazamiento de página vertical que comienza sobre la superficie, una rotación durante una retención y un segundo dedo tocando en otra parte. Confirme que ningún personaje siga moviéndose y que ningún botón permanezca presionado visualmente después de la cancelación.
La propiedad touch-action influye en los gestos que maneja el navegador. MDN explica que los navegadores pueden enviar la cancelación del puntero al realizar la panorámica o el zoom. Trate la cancelación como un resultado normal que su modelo de interacción debe manejar.
Preguntas sobre gestión de la cancelación del puntero en juegos
¿La cancelación del puntero es un puntero fallido?
Es una señal separada de que el puntero ya no continuará con la interacción actual. Ejecute la limpieza y aplique la regla de cancelación del juego en lugar de asumir que la acción se completó.
¿Puede touch-action evitar todas las cancelaciones de puntero?
No. Guía el manejo de los gestos táctiles del navegador, pero otras condiciones aún pueden finalizar la entrega del puntero. Mantenga el manejo de cancelación incluso cuando la superficie del juego tenga reglas de gestos personalizadas.
Más información
¿Has visto algo desactualizado? Notificar una corrección