requestAnimationFrame类型对象中的错误

时间:2013-07-05 09:00:01

标签: html5 object canvas window requestanimationframe

嗨我正在尝试将requestAnimationFrame用于我的游戏,我实际上使用下面的代码,但正如你可以看到“.bind()”创建每个循环一个新功能,减慢我的游戏......我是寻找最佳性能的“有效”解决方案,提前谢谢:D

function myClass() {
  this.loop = function() {
    window.requestAnimationFrame(this.loop.bind(this));

    /* here myGameLoop */
  }

  this.loop();
}

上面的代码工作但很慢..相反,这个“标准”代码给我“类型错误”:

window.requestAnimationFrame(this);

我也发现e试过这个Q& A:requestAnimationFrame attached to App object not Window只工作一次然后给出相同的“类型错误”:(

如果你不相信我,请试试:http://jsfiddle.net/ygree/1:'(

1 个答案:

答案 0 :(得分:1)

不知道你对象的整个故事(那里还有什么);你可以通过这样做来简化生活:

function myClass() {

    var iHavAccessToThis = 1;

    function loop() {

        iHavAccessToThis++;

        /* here myGameLoop */

        requestAnimationFrame(loop);
    }
    loop();

    //if you need a method to start externally use this instead of the above line
    this.start = function() { loop() }

    //...
    return this;
}

现在您不需要绑定任何内容,而是访问快速的本地范围。

然后致电:

var class1 = new myClass();
class1.start();