Rendre le nettoyage idempotent
Lorsque pointerdown démarre un glissement, stockez le pointerId actif et l'objet ou l'action qu'il possède. pointerup et pointercancel devraient mettre fin à cette interaction et effacer son état. Écrivez la fonction de nettoyage de sorte qu’un appel après la fin de l’action soit sans effet indésirable ; cela simplifie la gestion des pertes de capture, des changements de fenêtre et des nettoyages défensifs répétés.
Si vous utilisez la capture de pointeur, écoutez lostpointercapture comme un autre signal indiquant que l’interaction ne possède plus le pointeur. N'interprètez pas l'annulation comme un dépôt réussi à moins que le jeu ne définisse explicitement ce résultat. Un glissement annulé peut ramener un objet à sa position de départ, conserver la dernière position valide ou annuler le déplacement ; choisissez une règle et communiquez-la par un retour visuel.
Tester la prise de contrôle des gestes du navigateur
Essayez un glissement qui commence sur la surface de jeu et continue vers le bord de l'écran, un défilement de page vertical qui commence sur la surface, une rotation pendant une prise et un deuxième doigt touchant ailleurs. Confirmez qu'aucun personnage ne continue de bouger et qu'aucun bouton ne reste visuellement enfoncé après l'annulation.
La propriété touch-action influence les gestes gérés par le navigateur. MDN explique que les navigateurs peuvent envoyer une annulation de pointeur lors de la prise en charge du panoramique ou du zoom. Considérez l'annulation comme un résultat normal que votre modèle d'interaction doit gérer.
Questions sur annulation du pointeur dans les jeux
Le pointercancel est-il un pointeur ayant échoué ?
Il s'agit d'un signal distinct indiquant que le pointeur ne poursuivra plus l'interaction en cours. Exécutez le nettoyage et appliquez la règle d’annulation du jeu plutôt que de supposer que l’action est terminée.
L’action tactile peut-elle empêcher chaque annulation de pointeur ?
Non. Il guide la gestion des gestes tactiles par le navigateur, mais d'autres conditions peuvent toujours mettre fin à la transmission du pointeur. Continuez à gérer les annulations même lorsque la surface de jeu comporte des règles gestuelles personnalisées.
Pour aller plus loin
Vous avez repéré une information dépassée ? Signaler une correction