Я создаю свое приложение THREE.js с помощью React, и у меня есть два компонента: сцена с каруселью, созданная в THREE.js, и полноэкранная оверлейная сцена.Когда наложение отображается, я хочу приостановить сцену карусели, так как она вообще не видна.
В настоящее время я просто отменяю кадр анимации с помощью window.cancelAnimationFrame
, но я замечаю пару фрагментов в Интернетечто люди, как правило, просто устанавливают переменную вроде stop
в true
, а затем внутри цикла update
это будет примерно так:
update() {
if (this.stop)
this.renderer.render(this.scene, this.camera);
this.frameId = window.requestAnimationFrame(this.update);
}
Мне было бы интересно, если бы у одного из них была лучшая производительностьчем другой?Как если бы отмена и перезапуск кадра анимации были более дорогостоящими, чем просто поддержание цикла анимации.