javascript清除定时器累加
迷茫
迷茫 2017-04-11 11:14:51
[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()的频率越来越快了,请问如何解决这个问题?代码见上,我觉得可能是变量名的问题。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(1)
高洛峰

我猜你的思路是,希望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);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号