track.DrawLine(new Map.LonLat(temp.lonlat.x,temp.lonlat.y),new KbMap.LonLat(last.lonlat.x,last.lonlat.y),50000);
我想让下面的函数暂停50000执行。
track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd");//定点下一个坐标,循环,使得其暂停一段时间按执行
[b]问题补充:[/b]
楼下的方法我尝试了,不行恩
[b]问题补充:[/b]
var flag=true;
var temp;
var last;
for(次数)
if(flag){
定点第一个坐标
flag=false;
}else{
last=bean[i];//下一个坐标点
track.DrawLine(new Map.LonLat(temp.lonlat.x,temp.lonlat.y),new Map.LonLat(last.lonlat.x,last.lonlat.y),50000);//画出一条线
我想在这里停止执行一段时间。但是浏览器会执行temp=last;
track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd");//定点下一个坐标,循环,使得其暂停一段时间按执行
temp=last;
}
}
}
放到同一函数中
[code="java"]setTimeout(function(){
track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd");
temp=last;
},50000) [/code]
setTimeout('track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd")',50000);
怎么个不行法,是过50秒后没有执行这个方法,还是怎么样
这个方法是延时 5 秒运行,但是如果有后续程序,可能异步执行 产生一些问题
[code="js"]setTimeout(function(){track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd");},50000)[/code]
提供一个sleep 函数
[code="js"]
function sleep(n /*毫秒*/){
var start=new Date().getTime();
while(true) if(new Date().getTime()-start>n) break;
} [/code]
调用方法:
sleep(50000);
track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd");
这个好办啊
你可以把
{
track.Mark(new Map.LonLat(last.lonlat.x,last.lonlat.y),"sdsssd");//定点下一个坐标,循环,使得其暂停一段时间按执行
temp=last;
}
这部分封装成一个函数就ok了,可以传temp参数嘛