所以我已经制作了一个按字母打印出文字的函数,如下所示(我知道我的命名方案不好,请不要开玩笑。我还是相当新的编码,所以我的代码看起来有点奇怪/低效的。)Javascript setInterval每次运行时间越短
var text = document.getElementById("gametext")
var dialog = "the entire text you want to print out"
var talk = "The whole text gets added here, letter by letter"
var charinc = 0
function talky() {
setInterval(function(){
if(charinc < dialog.length){
talk = dialog.charAt(charinc++);
text.innerHTML += talk;
}
}, 100);
charinc = 0
}
,我调用这个函数多次在我的代码,设置对话框,不管它是什么,我想打印,和然后调用该函数。一开始它运行良好,但每次运行它时,看起来字母的打印速度越来越快。我不确定发生了什么,或者如何解决它。我在谷歌上做过几次搜索,但没有任何用处。
你为什么初始化'talk'当你刚刚要去从'charAt'分配结果呢? –
每次调用'talky()'时,都会调用'setInterval()'并注册一个函数,每100毫秒调用一次。你永远不会使用'setInterval'来存储句柄......并且从不在其上使用'clearInterval()'...因此,最终会有多个间隔函数运行,这会给间距周期减少_appearance_。 – canon