XRInputSourceArray:entries() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

XRInputSourceArray 介面的 entries() 方法會返回一個 JavaScript iterator,你可以使用這個迭代器遍歷輸入源陣列中的鍵值對。陣列中的每一項都是一個 XRInputSource 物件。

最常見的情況是,你會將它與諸如 for...of 這樣的語句結合使用。

語法

js
entries()

引數

無。

返回值

一個 iterator,可以用來遍歷輸入源陣列中包含的 XRInputSource 物件列表。

示例

此示例程式碼段獲取會話的輸入列表,並嘗試使用它來處理它支援的每種型別的輸入裝置。

js
let sources = xrSession.inputSources;

for (const input of sources.entries()) {
  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 */
  }
}

對於列表中的每個輸入,遊戲手柄的輸入會使用該輸入的 Gamepad 物件,該物件可以從其 gamepad 屬性獲取,然後傳遞給 checkGamepad() 方法進行處理。

對於其他裝置,我們會查詢玩家主手上的 tracked-pointer 裝置,並將它們分派給 handleMainHandInput() 方法。

規範

此特性似乎未在任何規範中定義。

瀏覽器相容性