XRInputSourceEvent: frame 属性
只读的 XRInputSourceEvent 属性 frame 指定了一个 XRFrame 对象,该对象代表了发生 WebXR 用户输入事件的帧。因此,这可能是一个发生在过去而不是当前或即将发生的事件。
值
一个 XRFrame,指示了对象所描述的用户输入事件发生的帧。
用法说明
事件帧不对应于传递给帧渲染回调函数的视觉帧(有关回调的详细信息,请参阅 渲染和 WebXR 帧渲染回调)。相反,frame 属性指定的 XRFrame 是提供对 getPose() 方法的访问的一种方法,您可以使用它来获取事件发生时场景中对象的相对位置。
然而,由于事件帧不是动画帧,因此没有可用的视口姿势来表示视口的当前视角;调用 getViewerPose() 的结果将是一个具有空 views 列表的 XRViewerPose。
示例
此代码显示了一个 selectstart 事件的处理程序,它从帧中获取目标射线的姿势,将表示射线的姿势(event.inputSource.targetRaySpace)映射到整体参考空间 myRefSpace。
然后,如果结果不是 null,则将目标射线姿势的变换传递给一个名为 myCheckAndHandleHit() 的函数,以查看在触发选择时射线是否指向任何东西。
js
xrSession.onselectstart = (event) => {
let targetRayPose = event.frame.getPose(
event.inputSource.targetRaySpace,
myRefSpace,
);
if (targetRayPose) {
checkAndHandleHit(targetRayPose.transform);
}
};
规范
| 规范 |
|---|
| WebXR Device API # dom-xrinputsourceevent-frame |
浏览器兼容性
加载中…