| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1135 人关注过本帖
标题:关于函数调用,两个settimeout同时调用同一函数出错
只看楼主 加入收藏
安之若素ㄟ
Rank: 1
来 自:河南
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-1-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
关于函数调用,两个settimeout同时调用同一函数出错
现在我们学的js特效,我自己做的是打地鼠的游戏,网上的代码很简练但是看不懂。
我的代码是这样的。

var n=0;
function movetop(no){
    //  每次使层向上移动固定距离。
    n++;
    var MT=setTimeout(movetop(no),100);
    if(n==10){
        clearTimeout(MT);
        var MB=setTimeout(movebottom(no),100);
    }  
}

function movebottom(no){
     //每次使层向下移动固定距离
    n--;
    if(n==0){
        clearTimeout(MB);
    }
}

//产生随机数使某一个层移动
function bringRandom(){
    var ra=随机数;

    movetop(ra);
    //调用使层移动
    setTimeout(bringRandom,1000);
}


大致代码是这样的,问题就是,一个层上下移动回原位置需要2分,随机数每一分钟产生一次,第一次是 层1 移动,还没移动回原位置时 movetop 函数又被调用,于是 层1 移动到一半就一直向一个方向移动了,层2 又开始移动了……所以不知道怎么解决这个问题。

还有一个问题就是,当页面运行时执行 onmousemove 时间时,页面会卡,好像影响 settimeout事件的执行,时间又会乱了。郁闷那,这个settimeout 事件很不可靠。
搜索更多相关主题的帖子: 打地鼠 游戏 
2011-01-10 23:49
jianghong_02
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:143
专家分:476
注 册:2010-10-2
收藏
得分:10 
查Script的使用手册,
2011-01-11 17:52
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:10 
var MT=setTimeout(movetop(no),100);
把这个时间改大一点;
 var MT=setTimeout(movetop(no),1000);
100的值小了点。如果还卡,就改成2000试试,又大到小,由慢到快,观察问题出在哪!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-01-11 22:17
快速回复:关于函数调用,两个settimeout同时调用同一函数出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved