XRSession: inputsourceschange 事件
当可用 WebXR 输入设备集发生变化时,inputsourceschange
事件将发送到 XRSession
。
语法
在像 addEventListener()
这样的方法中使用事件名称,或者设置事件处理程序属性。
js
addEventListener("inputsourceschange", (event) => {});
oninputsourceschange = (event) => {};
事件类型
一个 XRInputSourcesChangeEvent
。继承自 Event
。
事件属性
除了下面列出的属性外,父接口 Event
中的属性也可用。
added
只读-
零个或多个
XRInputSource
对象的数组,每个对象代表最近连接或启用的输入设备。 removed
只读-
代表最近断开连接或禁用的输入设备的零个或多个
XRInputSource
对象的数组。 session
只读-
将此输入源更改事件定向到的
XRSession
。
描述
触发器
当可用 WebXR 输入设备集发生变化时触发。
用例
您可以使用此事件来检测新可用设备或设备何时变得不可用。
示例
以下示例展示了如何设置事件处理程序,该处理程序使用 `inputsourceschange` 事件来检测新可用的指向设备,并在准备在下一个动画帧中显示它们之前加载它们的模型。
js
xrSession.addEventListener("inputsourceschange", onInputSourcesChange);
function onInputSourcesChange(event) {
for (const input of event.added) {
if (input.targetRayMode === "tracked-pointer") {
loadControllerMesh(input);
}
}
}
您还可以通过设置 `oninputsourceschange` 事件处理程序来添加 `inputsourceschange` 事件的处理程序。
js
xrSession.oninputsourceschange = onInputSourcesChange;
规范
规范 |
---|
WebXR 设备 API # eventdef-xrsession-inputsourceschange |
WebXR 设备 API # dom-xrsession-oninputsourceschange |
浏览器兼容性
BCD 表格仅在浏览器中加载