XRInputSourceArray: forEach() method

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Phương thức forEach() của XRInputSourceArray thực thi callback được chỉ định một lần cho mỗi nguồn đầu vào trong mảng, bắt đầu từ chỉ mục 0 và tiến đến cuối danh sách.

Cú pháp

js
forEach(callback)
forEach(callback, thisArg)

Tham số

callback

Một hàm thực thi một lần cho mỗi mục trong mảng xrInputSourceArray. Callback chấp nhận tối đa ba tham số:

currentValue

Một đối tượng XRInputSource là giá trị của mục từ trong xrInputSourceArray đang được xử lý hiện tại.

currentIndex Optional

Một giá trị số nguyên cung cấp chỉ mục vào mảng tại vị trí phần tử được cho bởi currentValue. Nếu bạn không cần biết số chỉ mục, bạn có thể bỏ qua điều này.

sourceList Optional

Đối tượng XRInputSourceArray đang được xử lý. Nếu bạn không cần thông tin này, bạn có thể bỏ qua điều này.

thisArg Optional

Giá trị được sử dụng cho this trong khi thực thi callback. Lưu ý rằng nếu bạn sử dụng ký hiệu hàm mũi tên (=>) để cung cấp callback, bạn có thể bỏ qua thisArg, vì tất cả hàm mũi tên đều liên kết this theo từ vựng.

Giá trị trả về

Undefined.

Ví dụ

Đoạn code này lấy danh sách đầu vào cho một phiên và cố gắng xử lý từng loại thiết bị đầu vào mà nó hỗ trợ.

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 */
  }
});

Đối với mỗi đầu vào trong danh sách, callback gửi đầu vào gamepad đến checkGamepad() với đối tượng Gamepad của đầu vào.

Đối với các thiết bị khác, chúng ta tìm kiếm các thiết bị tracked-pointer trong tay chính của người chơi, gửi chúng đến phương thức handleMainHandInput().

Thông số kỹ thuật

This feature does not appear to be defined in any specification.

Tương thích trình duyệt

Xem thêm