Machen Sie die Bereinigung idempotent
Wenn pointerdown ein Ziehen startet, speichern Sie die aktive pointerId und das Objekt oder die Aktion, deren Eigentümer sie ist. Sowohl pointerup als auch pointercancel sollten diese Interaktion beenden und ihren Status löschen. Schreiben Sie eine Bereinigung, sodass es harmlos ist, sie nach einer bereits beendeten Aktion aufzurufen. Dies vereinfacht den Umgang mit Erfassungsverlusten, Fensteränderungen und wiederholten defensiven Aufräumarbeiten.
Wenn Sie die Zeigererfassung verwenden, achten Sie auf „lostpointercapture“ als weiteres Signal dafür, dass die Interaktion den Zeiger nicht mehr besitzt. Interpretieren Sie einen Abbruch nicht als erfolgreichen Ablegen, es sei denn, das Spiel definiert dieses Ergebnis ausdrücklich. Ein abgebrochenes Ziehen könnte ein Objekt an seine Startposition zurückbringen, die letzte gültige Position beibehalten oder die Bewegung abbrechen; Wählen Sie eine Regel und kommunizieren Sie diese durch eine visuelle Rückmeldung.
Testen Sie die Übernahme von Browser-Gesten
Versuchen Sie es mit einem Ziehen, das auf der Spieloberfläche beginnt und sich bis zum Bildschirmrand fortsetzt, einem vertikalen Scrollen der Seite, das über der Oberfläche beginnt, einer Drehung während des Haltens und dem Berühren einer anderen Stelle mit einem zweiten Finger. Vergewissern Sie sich, dass sich nach dem Abbruch kein Charakter mehr bewegt und keine Taste sichtbar gedrückt bleibt.
Die Eigenschaft touch-action beeinflusst, welche Gesten der Browser ausführt. MDN erklärt, dass Browser pointercancel auslösen können, wenn sie das Schwenken oder Zoomen übernehmen. Behandeln Sie den Abbruch als ein normales Ergebnis, das Ihr Interaktionsmodell verarbeiten muss.
Fragen zu Zeigerabbruch in Spielen
Ist pointercancel ein fehlgeschlagener pointerup?
Es ist ein separates Signal, dass der Zeiger die aktuelle Interaktion nicht mehr fortsetzt. Führen Sie die Bereinigung durch und wenden Sie die Abbruchregel des Spiels an, anstatt davon auszugehen, dass die Aktion abgeschlossen ist.
Kann touch-action jede Zeigerabbruch verhindern?
Nein. Es steuert die Handhabung von Berührungsgesten durch den Browser, aber andere Bedingungen können die Zeigerübermittlung dennoch beenden. Behalten Sie die Abbruchbehandlung bei, auch wenn die Spieloberfläche über benutzerdefinierte Gestenregeln verfügt.
Weiterlesen
Etwas nicht mehr aktuell? Korrektur melden