首页 > javascript清除定时器累加

javascript清除定时器累加

    window.tm = {tma: false, tmb:false,};
        clearInterval(window.tm.tma);
        window.tm.tma = setInterval(function(){
            enemy.setDir();//enemy是一个对象
                setInterval(function(){
                    window.tm.tmb = enemy.move(eDir);
                    console.log(window.tm.tmb, window.tm.tma);//控制台输出为:undefined 1 
                },400);
        },2000);

问题是,由于定时器累加导致enemy.move()的频率越来越快了,请问如何解决这个问题?代码见上,我觉得可能是变量名的问题。


我猜你的思路是,希望tma每隔2秒执行一次,然后每次tma执行后的0.4秒再执行一次enemy.move?如果是这样的话,你的写法确实有问题,这么改改:

window.tm = {tma: false, tmb: false,};
clearInterval(window.tm.tma);
window.tm.tma = setInterval(function() {
    enemy.setDir(); //enemy是一个对象
    setTimeout(function() {//这里换成setTimeout
        window.tm.tmb = enemy.move(eDir);
        console.log(window.tm.tmb, window.tm.tma); //控制台输出为:undefined 1
    }, 400);
}, 2000);
【热门文章】
【热门文章】