2016-07-02 2 views
0

У меня есть цикл, запущенный в игре, над которой я работал, которая в основном оживляет круговой таймер. Цикл использует requestAnimationFrame, круг создается с помощью svg, и я устанавливаю атрибут stroke-dashoffset для каждого другого кадра (30 кадров в секунду). Использование ЦП составляет ~ 45% при обновлении 3 различных атрибутов в цикле. Когда я отключу их все, он скачет до ~ 3% (неудивительно). Вопрос в том, почему, когда я комментирую 2 из них, процессор все еще сидит на уровне ~ 45%. Почему нет разницы между анимацией 1 и 3 элементов при использовании ЦП? Достаточно ли 45% звука? (Я запускаю игру на iphone 6plus, а таймер svg довольно мал на экране, если это имеет значение).Javascript SVG Анимация на iPhone Использование ЦП

+1

Большинство, если не все UA, в наши дни обрабатывают обновления асинхронно. Они суммируют все изменения в окне времени, а затем выполняют 1 обновление экрана со всеми из них. –

ответ

1

45% не огромен, 90% должен быть проблемой. Для чертежей SVG не требуется много действий, и вы показываете их на маленьком экране, что уменьшает использование ЦП из-за того, что пиксельная матрица каждого SVG мала, и работа, которая над ними делается, тоже мала (я надеюсь, что я Ясно.

Анимация 1 или 3 элементов SVG не сильно влияет на действия, потому что, как я уже сказал, это небольшие элементы, которые не требуют много анимаций для анимации. Я думаю, что использование ЦП связано с вашим JS-скриптом, а не с графикой SVG (ведь отображение 1 или 3 элементов не влияет на производительность!)

Смежные вопросы