XRSession: select Event
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Das WebXR select-Event wird an eine XRSession gesendet, wenn eine der Eingabequellen der Sitzung eine primäre Aktion abgeschlossen hat.
Das beforexrselect wird vor diesem Ereignis ausgelöst und kann verhindern, dass dieses Ereignis ausgelöst wird.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener(), oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("select", (event) => { })
onselect = (event) => { }
Ereignistyp
Ein XRInputSourceEvent. Erbt von Event.
Beschreibung
>Auslöser
Wird ausgelöst, wenn ein Benutzer Auslöser oder Tasten drückt, ein Touchpad antippt, einen Befehl ausspricht oder eine erkennbare Geste ausführt, während er ein Video-Trackingsystem oder einen Handcontroller mit einem Beschleunigungssensor verwendet.
Anwendungsfälle
Die selectstart und selectend Ereignisse zeigen an, wann Sie dem Benutzer etwas anzeigen möchten, das darauf hinweist, dass die primäre Aktion ausgeführt wird. Dies könnte das Zeichnen eines Controllers mit der aktivierten Taste in einer neuen Farbe sein oder das Zeigen des gegriffenen und umherbewegten Objekts, beginnend, wenn selectstart eintrifft und endend, wenn selectend empfangen wird.
Das select-Ereignis informiert Ihren Code darüber, dass der Benutzer eine Aktion abgeschlossen hat. Dies könnte so einfach sein wie das Werfen eines Objekts oder das Betätigen des Abzugs einer Waffe in einem Spiel oder so komplex wie das Platzieren eines gezogenen Objekts an einem neuen Ort.
Wenn Ihre primäre Aktion eine einfache Triggeraktion ist und Sie während des Auslösens nichts animieren müssen, können Sie die selectstart und selectend Ereignisse ignorieren und beim Startereignis reagieren.
Beispiele
Das folgende Beispiel verwendet addEventListener(), um einen Handler für das select Ereignis einzurichten. Der Handler ruft die Pose ab, die den Zielstrahl für tracked-pointer-Eingaben darstellt, und sendet die Transformation der Pose an eine Funktion namens myHandleSelectWithRay().
xrSession.addEventListener("select", (event) => {
if (event.inputSource.targetRayMode === "tracked-pointer") {
let targetRayPose = event.frame.getPose(
event.inputSource.targetRaySpace,
myRefSpace,
);
if (targetRayPose) {
myHandleSelectWithRay(targetRayPose.transform);
}
}
});
Sie können auch einen Handler für select Ereignisse einrichten, indem Sie die onselect Ereignishandler-Eigenschaft des XRSession Objekts auf eine Funktion setzen, die das Ereignis verarbeitet:
xrSession.onselect = (event) => {
if (event.inputSource.targetRayMode === "tracked-pointer") {
let targetRayPose = event.frame.getPose(
event.inputSource.targetRaySpace,
myRefSpace,
);
if (targetRayPose) {
myHandleSelectWithRay(targetRayPose.transform);
}
}
};
Spezifikationen
| Spezifikation |
|---|
| WebXR Device API> # eventdef-xrsession-select> |
| WebXR Device API> # dom-xrsession-onselect> |