XRInputSourceEvent

Limited availability

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

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Giao diện XRInputSourceEvent của WebXR Device API mô tả một sự kiện xảy ra trên thiết bị đầu vào người dùng WebXR như bộ điều khiển cầm tay, hệ thống theo dõi ánh mắt, hoặc hệ thống theo dõi chuyển động. Cụ thể hơn, chúng đại diện cho sự thay đổi trạng thái của XRInputSource.

Để tìm hiểu thêm về việc xử lý đầu vào trong dự án WebXR, hãy xem bài viết Đầu vào và nguồn đầu vào.

Event XRInputSourceEvent

Hàm khởi tạo

XRInputSourceEvent()

Tạo và trả về đối tượng XRInputSourceEvent mới có các thuộc tính khớp với những thuộc tính được cung cấp trong từ điển eventInitDict.

Thuộc tính phiên bản

frame Read only

Một đối tượng XRFrame cung cấp thông tin cần thiết về khung sự kiện trong đó sự kiện xảy ra. Khung này có thể đã được render trong quá khứ thay vì là khung hiện tại. Vì đây là khung sự kiện, không phải khung hoạt ảnh, bạn không thể gọi phương thức XRFrame getViewerPose() trên nó; thay vào đó, hãy sử dụng getPose().

inputSource Read only

Một đối tượng XRInputSource cho biết nguồn đầu vào nào đã tạo ra sự kiện đầu vào.

Phương thức phiên bản

Giao diện XRInputSourceEvent không định nghĩa bất kỳ phương thức nào; tuy nhiên, một số phương thức được kế thừa từ giao diện cha Event.

Loại sự kiện

select

Được gửi đến XRSession khi nguồn đầu vào gửi đã hoàn thành đầy đủ một hành động chính.

selectend

Được gửi đến XRSession khi một hành động chính đang diễn ra kết thúc, hoặc khi nguồn đầu vào có hành động chính đang diễn ra đã bị ngắt kết nối khỏi hệ thống.

selectstart

Được gửi đến XRSession khi nguồn đầu vào bắt đầu hành động chính, cho biết người dùng đã bắt đầu lệnh, chẳng hạn như nhấn cò hoặc nút, phát lệnh bằng giọng nói, chạm vào touchpad, v.v.

squeeze

Được gửi đến XRSession khi nguồn đầu vào gửi đã hoàn thành đầy đủ một hành động bóp chính.

squeezeend

Được gửi đến XRSession khi một hành động bóp chính đang diễn ra kết thúc hoặc khi nguồn đầu vào có hành động bóp chính đang diễn ra bị ngắt kết nối.

squeezestart

Được gửi đến XRSession khi nguồn đầu vào bắt đầu hành động bóp chính, cho biết người dùng đã bắt đầu nắm, bóp hoặc cầm bộ điều khiển.

Ví dụ

Mã bên dưới thiết lập các trình xử lý cho các sự kiện hành động chính để xác định khi nào người dùng nhấp vào (bắn/chạm vào/bất cứ điều gì) các đối tượng trong cảnh.

js
xrSession.addEventListener("select", (event) => {
  let targetRayPose = event.frame.getPose(
    event.inputSource.targetRaySpace,
    myRefSpace,
  );

  if (targetRayPose) {
    let hit = myHitTest(targetRayPose.transform);
    if (hit) {
      /* handle the hit */
    }
  }
});

Thông số kỹ thuật

Specification
WebXR Device API
# xrinputsourceevent-interface

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