嗨我正在尝试将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:'(
答案 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();