Javascript Canvas 动画超出了最大调用堆栈大小

Jam*_*ien 3 javascript jquery animation canvas requestanimationframe

我有一个 jsFiddle,我一直在摆弄它,试图让我的小游戏变得更加有类等组织,但是当我请求动画帧时,传递对象(每个帧对每个对象执行一些功能) ),我收到最大调用堆栈大小错误。我怎样才能解决这个问题而不放弃我的课程?

jsFiddle: http://jsfiddle.net/Blawkbuilder/Q5U3X/109/

我怀疑是罪魁祸首的那一行:

    window.requestAnimationFrame(draw(p1,p2));
Run Code Online (Sandbox Code Playgroud)

但控制台链接到的行出现在 jquery 中的某处:

    } else if ( !rhtml.test( elem ) ) {
Run Code Online (Sandbox Code Playgroud)

使固定?我对 javascript 有点陌生。

(如果需要,这里是以前的,不是基于类的版本,仍然可以按我想要的方式运行) http://jsfiddle.net/Blawkbuilder/9hmca/131/

sok*_*npk 5

requestAnimationFrame接受回调。您正在评估draw(p1, p2)其返回值并将其传递给requestAnimationFrame. 你应该改成这样:

requestAnimationFrame(function() { draw(p1, p2); });
Run Code Online (Sandbox Code Playgroud)

这与 setInterval/setTimeout 类似。