安全上下文
此特征只可用于 安全上下文 (HTTPS),在某些或所有 支持浏览器 .

The WebXR event squeeze is sent to an XRSession when one of the session's input sources has completed a primary squeeze action . Examples of comon kinds of primary action are users pressing triggers or buttons, tapping a touchpad, speaking a command, or performing a recognizable gesture when using a video tracking system or handheld controller with an accelerometer.

冒泡 Yes
可取消 No
接口 XRInputSourceEvent
事件处理程序特性 onsqueeze

For details on how the squeezestart , squeeze ,和 squeezeend events work, and how you should react to them, see Primary squeeze actions in Inputs and input sources .

范例

以下范例使用 addEventListener() to set up a handler for the squeeze event. The handler fetches the pose representing the target ray for tracked-pointer inputs and sends the pose's transform to a function called myHandleSqueezeWithRay() .

This code treats the squeeze as an instantaneous action that doesn't involve tracking an ongoing activity. If you need to track a squeeze action that isn't instantaneous, listen for the squeezestart and squeezeend events to sense when the squeeze action begins and ends.

xrSession.addEventListener("squeeze", event => {
  if (event.inputSource.targetRayMode == "tracked-pointer") {
    let targetRayPose = event.frame.getPose(event.inputSource.targetRaySpace,
                              myRefSpace);
    if (targetRayPose) {
      myHandleSqueezeWithRay(targetRayPose.transform);
    }
  }
});
					

You can of course also set up a handler for squeeze events by setting the XRSession 对象的 onsqueeze event handler property to a function that handles the event:

xrSession.onsqueeze = event => {
  if (event.inputSource.targetRayMode == "tracked-pointer") {
    let targetRayPose = event.frame.getPose(event.inputSource.targetRaySpace,
                              myRefSpace);
    if (targetRayPose) {
      myHandleSqueezeWithRay(targetRayPose.transform);
    }
  }
};
					

规范

规范 状态 注释
WebXR 设备 API
The definition of 'squeeze event' in that specification.
工作草案 初始定义。

浏览器兼容性

No compatibility data found. Please contribute data for "api.XRSession.squeeze_event" (depth: 1) to the MDN 兼容性数据存储库 .

元数据

  • 最后修改: