如果按{esc'导致keyPressed
事件为27,则会console.log("ESCY");
打loopcnt
次,与 loopcnt = 0;
var fps = 22;
var interval = 1000 / fps;
function draw()
{
setTimeout(function()
{
if (willAnimate)
{
window.requestAnimationFrame(draw);
console.log("Framecnt: "+ loopcnt);
loopcnt++;
}
IndexJSON.each(function(key, value){ IndexOBJECT[key].render(); });
$(window).delegate('body', 'keydown', function(event){
keyPressed = event.which;
if (keyPressed == 27)
{
willAnimate = false;
console.log("ESCY");
}
});
}, interval);
};
willAnimate = true;
draw();
var一样多次出现
console.log
如果你问我,那就没有逻辑意义......
好像它正在缓冲所有if
s,直到setTimeout
语句为真..
知道为什么会这样吗?
(另一个问题:我尝试用return
取消return
函数,但它不会终止函数,可能是因为{{1}}只会从if语句返回,但是有没有办法从外部终止该功能?)
答案 0 :(得分:0)
好的,显然当我将.delegate移到setTimeout()之外;它不会多次触发if语句。
而且,我现在意识到,每次循环循环时我都会绑定密钥,因此当我按下键时它会触发所有绑定..
现在很明显我想到了......