XRSession: метод cancelAnimationFrame()
Ограниченная доступность
Эта функция не относится к Baseline, поскольку она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная функция: Это экспериментальная технология.
Внимательно проверьте таблицу совместимости браузеров (таблица совместимости) перед использованием в продакшене.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Метод cancelAnimationFrame() интерфейса XRSession отменяет кадр анимации, который был запрошен ранее вызовом requestAnimationFrame.
Синтаксис
cancelAnimationFrame(handle)
Параметры
handle-
Уникальное значение, возвращаемое вызовом
requestAnimationFrame(), которое ранее планировало вызов обратного вызова анимации.
Возвращаемое значение
None (undefined).
Примечания по использованию
Эта функция не оказывает никакого влияния, если указанный handle не найден.
Примеры
В примере ниже показан код, который запускает сеанс WebXR, если поддерживается режим виртуальной реальности. После запуска сеанс запланирует первый рендеринг кадра, вызвав requestAnimationFrame().
Функция pauseXR() внизу может быть вызвана для приостановки сеанса WebVR, по сути, путем отмены любого ожидающего вызова обратного вызова кадра анимации. Поскольку каждый вызов обратного вызова кадра планирует следующий, удаление вызова обратного вызова прекращает обновление сцены WebXR.
const XR = navigator.xr;
let requestHandle = null;
let xrSession = null;
if (XR) {
XR.isSessionSupported("immersive-vr").then((isSupported) => {
if (isSupported) {
startXR();
}
});
}
function frameCallback(time, xrFrame) {
xrSession.requestAnimationFrame(frameCallback);
// Update and render the frame
}
async function startXR() {
xrSession = XR.requestSession("immersive-vr");
if (xrSession) {
stopButton.onclick = stopXR;
requestHandle = xrSession.requestAnimationFrame(frameCallback);
}
}
function pauseXR() {
if (xrSession && requestHandle) {
xrSession.cancelAnimationFrame(requestHandle);
requestHandle = null;
}
}
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
cancelAnimationFrame |
79 | 79 | Нет | 66 | Нет | 79 | Нет | 57 | Нет | 11.2 | Нет |
См. также
© 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/cancelAnimationFrame