XRInputSourcesChangeEvent - 表示可用的 WebXR 输入控制器发生更改的事件

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

XRInputSourcesChangeEvent 是 WebXR 设备 API 的接口,用于表示当可用的 WebXR 输入控制器发生更改时,发送给 XRSessioninputsourceschange 事件。

构造函数

XRInputSourcesChangeEvent()

创建并返回一个新的 XRInputSourcesChangeEvent 对象,该对象的配置由给定的 XRInputSourcesChangeEventInit 对象表示。指定的类型必须是 inputsourceschange,这是使用此接口的唯一事件。

属性

added 只读

零个或多个 XRInputSource 对象的数组,每个对象代表新连接或启用的输入设备。

removed 只读

零个或多个 XRInputSource 对象的数组,它们表示不再可用的输入设备。

session 只读

此输入源更改事件定向到的 XRSession

方法

虽然 XRInputSourcesChangeEvent 没有定义自己的方法,但它从其父接口 Event 继承了方法。

事件类型

inputsourceschange

当可用的输入设备集发生更改时,将传递给 XRSession

实例

下面的实例演示如何设置一个事件处理程序,该事件处理程序使用 inputsourceschange 事件来检测新可用的指针设备并加载其模型,以准备在下一动画帧中显示它们。

xrSession.addEventListener("inputsourceschange", onInputSourcesChange);

function onInputSourcesChange(event) {
  for (let input of event.added) {
    if (input.targetRayMode == "tracked-pointer") {
      loadControllerMesh(input);
    }
  }
}

您还可以通过设置 oninputsourceschange 事件处理程序来为 inputsourceschange 事件添加处理程序:

xrSession.oninputsourceschange = onInputSourcesChange;

规范

规范 状态 备注
WebXR Device API
XRInputSourcesChangeEvent 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持7979 不支持 不支持 不支持 不支持
XRInputSourcesChangeEvent() 构造函数7979 不支持 不支持 不支持 不支持
added7979 不支持 不支持 不支持 不支持
removed7979 不支持 不支持 不支持 不支持
session7979 不支持 不支持 不支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持79 未知 不支持 未知 不支持 不支持
XRInputSourcesChangeEvent() 构造函数 不支持79 未知 不支持 未知 不支持 不支持
added 不支持79 未知 不支持 未知 不支持 不支持
removed 不支持79 未知 不支持 未知 不支持 不支持
session 不支持79 未知 不支持 未知 不支持 不支持