setTimeout只运行一次

时间:2016-09-16 16:26:06

标签: javascript html5 animation canvas html5-canvas

我试图为cleatRect功能添加延迟,我的目的是让动画精灵创建一个跟踪效果'但是,setTimeout函数仅在画布动画开始时运行一次。 我错过了一些明显的东西吗?

var draw = function() { // draw loop 
    setTimeout(function() { // this runs once
        ctx.clearRect(0, 0, 700, 560);
    }, 2000);

    ctx.drawImage(sprites.background, bkg.x, bkg.y);
    aliens.forEach(function(element, index) {
        ctx.drawImage(sprites.enemy, element.clipX, element.clipY, element.w, element.h, element.x, element.y, element.w, element.h);
    });
};

1 个答案:

答案 0 :(得分:2)

setTimeout

  

设置一个计时器,在计时器到期后执行一次函数或指定的代码。

你想:setInterval

  

重复调用函数或执行代码片段,每次调用之间有固定的时间延迟。返回intervalID。