如果keyPressed
事件是 27 通过按“esc”,它将一次打印与 varconsole.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();
如果你问我,这没有逻辑意义......
就好像它正在缓冲所有的console.log
s,直到if
语句为真..
知道为什么会这样吗?
(还有另一个问题:我尝试用 取消setTimeout
函数return
,但它不会终止函数,可能是因为return
只会从 if 语句返回,但有没有办法从外部终止函数?)