XRInputSourceArray:forEach() 方法

实验性: 这是一种 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

XRInputSourceArray 方法 forEach() 会对数组中的每个输入源执行指定的回调函数,从索引 0 开始,一直执行到列表末尾。

语法

js
forEach(callback)
forEach(callback, thisArg)

参数

callback

一个函数,在 xrInputSourceArray 数组中的每个条目上执行一次。回调函数最多接受三个参数

currentValue

一个 XRInputSource 对象,它是当前正在处理的 xrInputSourceArray 中条目的值。

currentIndex 可选

一个整数,表示 currentValue 指定的元素在数组中的索引。如果不需要知道索引号,可以省略。

sourceList 可选

正在处理的 XRInputSourceArray 对象。如果不需要此信息,可以省略。

thisArg 可选

在执行回调函数时要用于 this 的值。请注意,如果使用 箭头函数表示法 (=>) 提供回调函数,则可以省略 thisArg,因为所有箭头函数都会词法绑定 this

返回值

未定义。

示例

此示例代码段获取会话的输入列表,并尝试使用它支持的每种类型的输入设备进行处理。

js
let inputSources = xrSession.inputSources;

inputSources.forEach((input) => {
  if (input.gamepad) {
    checkGamepad(input.gamepad);
  } else if (
    input.targetRayMode === "tracked-pointer" &&
    input.handedness === player.handedness
  ) {
    /* Handle main hand controller */
    handleMainHandInput(input);
  } else {
    /* Handle other inputs */
  }
});

对于列表中的每个输入,回调函数将游戏手柄输入分派到 checkGamepad(),并将其从输入的 gamepad 属性中获取的 Gamepad 对象作为输入。

对于其他设备,我们寻找玩家主手中 tracked-pointer 设备,并将它们分派到 handleMainHandInput() 方法。

规范

未找到规范

未找到 api.XRInputSourceArray.forEach 的规范数据。
检查此页面是否存在问题 或为缺少的 spec_url 贡献代码到 mdn/browser-compat-data。还要确保规范包含在 w3c/browser-specs.

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅