XRInputSourceEvent: frame 屬性

可用性有限

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

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

只讀的 XRInputSourceEvent 屬性 frame 指定了一個 XRFrame 物件,該物件代表了發生 WebXR 使用者輸入事件的幀。因此,這可能是一個發生在過去而不是當前或即將發生的事件。

一個 XRFrame,指示了物件所描述的使用者輸入事件發生的幀。

用法說明

事件幀不對應於傳遞給幀渲染回撥函式的視覺幀(有關回調的詳細資訊,請參閱 渲染和 WebXR 幀渲染回撥)。相反,frame 屬性指定的 XRFrame 是提供對 getPose() 方法的訪問的一種方法,您可以使用它來獲取事件發生時場景中物件的相對位置。

然而,由於事件幀不是動畫幀,因此沒有可用的視口姿勢來表示視口的當前視角;呼叫 getViewerPose() 的結果將是一個具有空 views 列表的 XRViewerPose

示例

此程式碼顯示了一個 selectstart 事件的處理程式,它從幀中獲取目標射線的姿勢,將表示射線的姿勢(event.inputSource.targetRaySpace)對映到整體參考空間 myRefSpace

然後,如果結果不是 null,則將目標射線姿勢的變換傳遞給一個名為 myCheckAndHandleHit() 的函式,以檢視在觸發選擇時射線是否指向任何東西。

js
xrSession.onselectstart = (event) => {
  let targetRayPose = event.frame.getPose(
    event.inputSource.targetRaySpace,
    myRefSpace,
  );
  if (targetRayPose) {
    checkAndHandleHit(targetRayPose.transform);
  }
};

規範

規範
WebXR Device API
# dom-xrinputsourceevent-frame

瀏覽器相容性