XRInputSourceEvent - Web APIs 编辑
Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The WebXR Device API's XRInputSourceEvent
interface describes an event which has occurred on a WebXR user input device such as a hand controller, gaze tracking system, or motion tracking system. More specifically, they represent a change in the state of an XRInputSource
.
To learn more about handling inputs in a WebXR project, see the article Inputs and input sources.
Constructor
XRInputSourceEvent()
- Creates and returns a new
XRInputSourceEvent
object whose properties match those provided in theeventInitDict
dictionary provided.
Properties
frame
Read only- An
XRFrame
object providing the needed information about the event frame during which the event occurred. This frame may have been rendered in the past rather than being a current frame. Because this is an event frame, not an animation frame, you cannot call theXRFrame
methodgetViewerPose()
on it; instead, usegetPose()
. inputSource
Read only- An
XRInputSource
object indicating which input source generated the input event.
Methods
The XRInputSourceEvent
interface doesn't define any methods; however, several methods are inherited from the parent interface, Event
.
Event types
select
- Sent to an
XRSession
when the sending input source has fully completed a primary action. selectend
- Sent to an
XRSession
when an ongoing primary action ends, or when an input source with an ongoing primary action has been disconnected from the system. selectstart
- Sent to an
XRSession
when an input source begins its primary action, indicating that the user has begun a command-like input, such as pressing a trigger or button, issuing a spoken command, tapping on a touchpad, or the like. squeeze
- Sent to an
XRSession
when the sending input source has fully completed a primary squeeze action. squeezeend
- Sent to an
XRSession
when an ongoing primary squeeze action ends or when an input source with an ongoing primary squeeze action is disconnected. squeezestart
- Sent to an
XRSession
when an input source begins its primary squeeze action, indicating that the user has begun to grab, squeeze, or grip the controller.
Examples
The code below sets up handlers for primary action events in order to determine when the user clicks on (shoots at/pokes at/whatever) objects in the scene.
xrSession.addEventListener("select", event => {
let targetRayPose = event.frame.getPose(event.inputSource.targetRaySpace, myRefSpace);
if (targetRayPose) {
let hit = myHitTest(targetRayPose.transform);
if (hit) {
/* handle the hit */
}
}
});
Specifications
Specification | Status | Comment |
---|---|---|
WebXR Device API The definition of 'XRInputSourceEvent' in that specification. | Working Draft | Initial definition. |
Browser compatibility
BCD tables only load in the browser
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论