XRSession: selectend 事件

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

XRSession 的输入源结束其 主操作,或者正在处理进行中的主操作的输入源在未成功完成操作的情况下断开连接时,会向该 XRSession 发送 selectend WebXR 事件。

beforexrselect 事件触发后,会引发此事件,并且可以阻止此事件被触发。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("selectend", (event) => { })

onselectend = (event) => { }

事件类型

一个 XRInputSourceEvent。继承自 Event

Event XRInputSourceEvent

事件属性

除了下面列出的属性之外,父接口 Event 的属性也可使用。

frame 只读

一个 XRFrame 对象,提供有关事件发生的帧所需的关于事件帧的信息。此帧可能是在过去渲染的,而不是当前帧。由于这是一个*事件*帧,而不是*动画*帧,因此您不能在其上调用 XRFrame 方法 getViewerPose();而是应使用 getPose()

inputSource 只读

一个 XRInputSource 对象,指示是哪个输入源生成了此输入事件。

描述

触发

当用户停止按下扳机或按钮、轻点触摸板、说出命令,或在使用带有加速计的视频跟踪系统或手持控制器时执行可识别的手势时触发。

用例

selectendselectstart 事件会告知您何时可能需要向用户显示指示主操作正在进行的指示。这可能包括以新的颜色绘制激活按钮的控制器,或显示被抓取并四处移动的目标对象,当 selectstart 到达时开始,当收到 selectend 时停止。

select 事件会告知您的代码用户已完成他们想要完成的操作。这可能很简单,比如在游戏中扔出一个物体或扣动枪的扳机,也可能很复杂,比如将拖动的物体放置在新位置。

如果您的主要操作是一个简单的触发器操作,并且您在触发器接合期间不需要为任何内容设置动画,您可以忽略 selectstartselectend 事件,并在开始事件上执行操作。

示例

有关示例代码,请参阅 selectstart 事件。

规范

规范
WebXR Device API
# eventdef-xrsession-selectend
WebXR Device API
# dom-xrsession-onselectend

浏览器兼容性

另见