html画布动画口吃

时间:2014-03-14 17:54:17

标签: javascript google-chrome animation canvas vsync

有谁可以解释为什么提供的画布动画口吃?我已经创建了一个测试存根来演示这个问题。

我看到桌面上的FF,Chrome,IE以及Android上的FF和Chrome中的口吃。

由于垃圾收集而导致口吃吗?似乎甚至raf在每次调用时都会生成一个double,最终需要gc。如果gc是原因那么html5动画几乎就是这样。叹息。

同一个问题是在一年前提出的,但由于我是新成员,我无法联系作者找出他的解决方案。 HTML5 Canvas DrawImage Stutter / Choppiness。真的太糟糕了,新用户无法获得另一个用户的注意,因为该另一个问题的作者可能有我正在寻找的信息,而且根本没有发布它。为了引起他的注意,我尝试发布他的问题,但我的帖子被删除作为规则违规(这是)。猜猜我没有选择。代表的鸡肉和鸡蛋问题。

1 个答案:

答案 0 :(得分:3)

好的,所以拔掉头发1.5天之后,我觉得我有一个答案。它似乎是浏览器vsynch到监视器,我想这是调用requestAnimationFrame的点。在多监视器系统上运行时,似乎同步机制可能会混淆。我有三台显示器。当我断开除一台显示器以外的所有显示器并重新启动浏览器时,问题似乎消失了。这种问题很有意义,因为这个问题偶尔出现,即我猜测某个监视器何时与监视器为浏览器提供vsynch不同步。

由于我不确定这一点,我希望其他人可以确认或击落我的理论。我将继续(重新)测试不同的显示器配置,但从另一个大脑和一组眼睛得到确认将是很好的。

编辑01:我并不完全疯了。 http://news.softpedia.com/news/Firefox-Nightly-Adds-Support-for-Vsync-for-Smooth-Animations-360245.shtml

编辑02:某些Chrome用户/开发人员发现了此问题或相关问题。最后,可以通过这个问题完成一些事情。见https://code.google.com/p/chromium/issues/detail?id=422000。 BTW,IE11 +没有这个问题。开始使用IE11进行基线测试,因为Chrome最近有QA问题。

编辑03:刚刚遇到过类似的q& a。第一个答案的好消息。 Chrome requestAnimationFrame issues

相关问题