Spec-Zone.ru › Web APIs

XRSession: событие select

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Экспериментальная: Это экспериментальная технология.
Перед использованием в рабочей среде внимательно изучите таблицу совместимости браузеров.

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Событие WebXR select отправляется в XRSession, когда один из источников ввода сессии завершил основное действие.

Событие beforexrselect срабатывает до этого события и может предотвратить его возникновение.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или задайте обработчик события.

addEventListener("select", (event) => {});

onselect = (event) => {};

Тип события

Объект XRInputSourceEvent. Наследуется от Event.

Событие XRInputSourceEvent

Свойства события

Помимо перечисленных ниже свойств, доступны свойства родительского интерфейса Event.

frame Только для чтения

Объект XRFrame, предоставляющий необходимую информацию о кадре события, в котором произошло событие. Этот кадр может быть рендерен в прошлом, а не текущим. Поскольку это кадр события, а не кадр анимации, вы не можете вызвать XRFrame.getViewerPose() на нём; вместо этого используйте getPose().

inputSource Только для чтения

Объект XRInputSource, указывающий, какой источник ввода сгенерировал событие ввода.

Описание

Триггер

Срабатывает при нажатии пользователем триггеров или кнопок, нажатии сенсорной панели, произнесении команды или выполнении распознаваемого жеста при использовании системы отслеживания видео или контроллера с акселерометром.

Сценарии использования

События selectstart и selectend сообщают вам, когда необходимо отобразить пользователю информацию о текущем основному действию. Это может быть наложение контроллера с нажатой кнопкой в новом цвете или показ объекта, который захватывается и перемещается, начиная с появления selectstart и заканчивая получением selectend.

Событие select сообщает вашему коду о завершении пользователем действия. Это может быть простым броском объекта или нажатием спускового крючка в игре, или более сложным размещением перетащенного объекта в новом месте.

Если ваше основное действие — простое действие нажатия триггера, и вам не нужно ничего анимировать, пока триггер нажат, вы можете пропустить события selectstart и selectend и действовать только на событии начала.

Примеры

Следующий пример использует addEventListener(), чтобы установить обработчик для события select. Обработчик получает позу, представляющую целевой луч для ввода tracked-pointer и отправляет преобразование позы в функцию, названную myHandleSelectWithRay().

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

Вы также можете настроить обработчик для событий select, установив свойство обработчика события onselect объекта XRSession на функцию, которая обрабатывает событие:

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

Спецификации

Спецификация
API устройства WebXR
# eventdef-xrsession-select
API устройства WebXR
# dom-xrsession-onselect

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
select_event 79 79 Нет 66 Нет 79 Нет 57 Нет 11.2 Нет

См. также

  • selectstart и selectend
  • beforexrselect

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRSession/select_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API