这个问题与之前的一个问题有关,但在我开始对代码进行重大更改之前,我想确保我有正确的答案。
我正在开发一个非常计算密集的JavaScript程序,需要不断更新HTML5画布中的图像来绘制动画。现在的代码在紧密循环中绘制所有的动画帧而不将控制返回给浏览器,这意味着最终显示的只是最后一帧。我相信唯一解决这个问题的方法是将动画代码划分为更小的部分,通过超时事件可重入地调用它们。这样做是正确的吗?或者在紧密的JavaScript循环中有没有一种强制画布在某个特定时间点显示其内容的方法?
我正在开发一个非常计算密集的JavaScript程序,需要不断更新HTML5画布中的图像来绘制动画。现在的代码在紧密循环中绘制所有的动画帧而不将控制返回给浏览器,这意味着最终显示的只是最后一帧。我相信唯一解决这个问题的方法是将动画代码划分为更小的部分,通过超时事件可重入地调用它们。这样做是正确的吗?或者在紧密的JavaScript循环中有没有一种强制画布在某个特定时间点显示其内容的方法?
setTimeout
/setInterval
/mozRequestAnimationFrame
帮助下的函数中重复调用animationGenerator.next()
。 - Thai