|
|
需要改装一下 drawText 函数,用以下这个替代原来的:
(function drawText() {
ctx.clearRect(0, 0, w, h);
ctx.strokeStyle = linear;
ctx.font = 'bold 50px snas-serif';
for(let k = 0; k < lineNow; k ++) {
ctx.strokeText(txtAr[k], 20, lineHeight * k + lineHeight);
}
let txtstr = txtAr[lineNow].substring(0, charIdx);
ctx.strokeText(txtstr, 20, lineHeight * lineNow + lineHeight);
charIdx ++;
if(charIdx > txtAr[lineNow].length) {
lineNow += 1;
charIdx = 0;
}
if(lineNow > txtAr.length - 1) {
setTimeout(function() {
lineNow = 0;
drawText();
}, 10000);
} else {
setTimeout(drawText, 500);
}
})();
暗红色的代码是变动的部分。原理是,加入一个分支,判断:当当前行大于行数组减1,则运行一个延时定时器,该定时器设定为10秒(10000毫秒),10秒一到,则令 lineNum (当前行)恢复到0,且运行本函数;否则,当当前行没有超过总行数边界,则运行正常的定时器,即原来设计的那个定时器,每 500 毫秒运行一次本函数。
需要修改延时定时器间隔时间,修改 10000 这个数即可。
|
|