Createjs: Stage.update () внутренний рабочий вопрос для оптимизации производительности.Это происходит на каждом тике или каждый раз, когда он называется? - PullRequest
0 голосов
/ 01 марта 2019

Чтобы оптимизировать код createjs, я не могу найти информацию по этому вопросу.Случай: у меня есть компонент полосы прокрутки, и каждый раз, когда я перемещаю, сцена прокрутки обновляется, чтобы отразить изменения в визуальном показе полосы прокрутки.Также запускается событие прокрутки.Приложение прослушивает событие и обновляет некоторые визуальные элементы в прокручиваемом контенте, поэтому запускается другой Stage.update ().

Мой вопрос: обновляется ли stage только при каждом "тике", или ситуация, описанная выше, будетпривести к тому, что stage обновляется дважды при той же мгновенной деградации производительности?

В коде будет:

stage.update();
stage.update();
stage.update();

Причиняет ли обновление stage 3 раза подряд?Или только один раз на следующем тике?

Спасибо

1 Ответ

0 голосов
/ 02 марта 2019

В обновлении этапа нет никаких отклонений, поэтому каждый раз, когда вы вызываете его, этап будет отображаться.Кроме того, будут запущены внутренние счетчики, такие как продвижение кадров на основе тиков.

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

Если вы хотите создать гибрид, я рекомендую проверить свойство update, которое вы установили самостоятельно.Затем вы можете переключать его в любое время, и он будет запускаться один раз за тик макс.

createjs.Ticker.on("tick", function(e) {
  if (shouldUpdate) { stage.update(e); }
  shouldUpdate = false;
});

Надеюсь, это поможет!

...