requestAnimationFrame с несколькими анимациями, 1 из которых постоянно работает, а 1 запускается пользователем.

В настоящее время у меня есть 2 анимации в двух циклах RAF. По соображениям производительности я рассматриваю возможность перемещения обоих в 1 цикл. Постоянно работающая анимация представляет собой небольшой 3D-каркас в шапке сайта, его нельзя остановить и он присутствует в момент загрузки сайта. Однако у меня также есть осциллографы и анализаторы спектра, которые запрашивают кадры анимации только при воспроизведении звука. В тот момент, когда я делаю паузу, вызывается cancelAnimationFrame.

Я читал, что 1 rAF обычно лучше, но у меня есть некоторые сомнения, как мне этого добиться. Должен ли постоянно работающий цикл rAF проверять 60 раз в секунду переменную, имеющую логическое значение, и, когда значение истинно, он также должен запускать функцию, которая содержит анимацию, запускаемую пользователем? Или есть лучшие решения? Каков ваш опыт?


person dekztah    schedule 19.03.2015    source источник
comment
Если у вас уже есть непрерывный цикл rAF для каркаса, добавление проверки логического значения не будет проблемой с точки зрения производительности; и это наверное лучше, чем два шлейфа раф. Сказав это, если у вас уже нет проблем с производительностью, я не вижу проблем с обоими подходами для вашего случая.   -  person ZER0    schedule 19.03.2015
comment
хорошо, я реализовал это. результаты лучше на младшей машине, чем раньше. некоторые машины без графического процессора, как правило, задыхаются от холста и рендеринга WebGL, хотя они могут без проблем воспроизводить видео 1080p. спасибо за подтверждение, очень признателен!   -  person dekztah    schedule 19.03.2015
comment
Один rAF обычно лучше. Вы можете использовать несколько объектов javascript, которые управляют анимацией, в одном requestAnimationFrame. Вот демонстрация: stackoverflow. com/questions/27982470/   -  person markE    schedule 20.03.2015