Createjs:用于优化性能的Stage.update()内部工作问题。它是在每次滴答或每次调用时发生的吗?

时间:2019-03-01 18:48:25

标签: createjs easeljs stage

为了优化createjs代码,我找不到与此相关的信息。 案件: 我有一个滚动条组件,每次移动滚动条时,舞台都会更新,以反映滚动条视觉效果的变化。还会触发滚动事件。 应用程序侦听该事件,并更新滚动内容中的某些视觉效果,因此将触发另一个Stage.update()。

我的问题是:阶段是否仅在每个“滴答”中进行更新,否则上述情况将导致阶段在同一瞬间降低性能两次更新?

在代码中,将:

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

是否导致阶段连续更新3次?还是在下一个滴答中只有一次?

谢谢

1 个答案:

答案 0 :(得分:1)

舞台更新不会发生反弹,因此,每次调用它时,都会渲染舞台。此外,还将触发内部计数器,例如基于刻度的帧前进。

不建议您运行它多次。通常,应用程序具有连续的代码,或者仅在内容更改时才更新。

如果要创建混合对象,建议您检查自己设置的update属性。然后,您可以随时切换它,并且每次打勾时最多运行一次。

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

希望有帮助!