AnimationFrame误解

时间:2015-06-26 15:37:52

标签: javascript animation

所以我正在尝试构建一个多人网络游戏,但我几乎已经完成了,但是当我注意到一些奇怪的东西时,我正在添加一些额外的功能,如启动画面等等。如果我完全注释掉01节,那么这段代码仍然有用,但是如果我在第02节中注释掉第二行,无论01节是否被注释掉,那么它将无法工作。我可能误解了animationFrame正在做什么或/和它是如何工作的。有人可以向我解释这个或提供解释的链接。谢谢!

//----------START SECTION 01----------
window.requestAnimationFrame = (function() {
    return window.requestAnimationFrame ||
    window.webkitRequestAnimationFrame  ||
    window.mozRequestAnimationFrame     ||
    function(callback) {
      window.setTimeout(callback, 1000 / 60);
    };
})();
//----------END SECTION 01----------

//----------START SECTION 02----------
(function animationLoop() {
    requestAnimationFrame(animationLoop);
    gameLoop();
})();
//----------END SECTION 02----------

1 个答案:

答案 0 :(得分:1)

您分配给window.requestAnimationFrame的垫片是旧版浏览器的填充,但如果您正在测试的浏览器都有requestAnimationFrame,那么当您将其注释掉时,它仍将在该浏览器中工作。 / p>

当然你需要总是调用requestAnimationFrame,因为它有点像setTimeout的替换。如果你没有调用它,那么gameLoop只运行一次。