我用一个定时器time = setInterval(animation, animation_interval);绘图:
// 动画函数
function animation() {
console.log(`间隔时间:${Date.now()-that.startTime}`)
if (step <= n) {
end = end + 2 * Math.PI / n;
ringMove(start, end);
step++;
} else {
clearInterval(time);
}
};
// 画布绘画函数
function ringMove(s, e) {
let stTime = Date.now();
var context = wx.createCanvasContext('secondCanvas')
var gradient = context.createLinearGradient(200, 100, 100, 200);
gradient.addColorStop("0", "#2661DD");
gradient.addColorStop("0.5", "#40ED94");
gradient.addColorStop("1.0", "#5956CC");
// 绘制圆环
context.setStrokeStyle('#f6cbf4')
context.beginPath()
context.setLineWidth(10)
context.arc(42, 42, 30, s, e, true)
context.stroke()
context.closePath()
// 绘制倒计时文本
context.beginPath()
context.setLineWidth(1)
context.setFontSize(30)
context.setFillStyle('#ffffff')
context.setTextAlign('center')
context.setTextBaseline('middle')
context.fillText(n - num + '', 42, 42, 30)
context.fill()
context.closePath()
context.draw()
// 每完成一次全程绘制就+1
num++;
console.log(`绘制时间:${Date.now()-stTime}`)
}
var animation_interval = 500 //500毫秒
console输出:
绘制时间:76
canvasDemo.js:184 间隔时间:3307
canvasDemo.js:229 绘制时间:1
canvasDemo.js:184 间隔时间:4219
canvasDemo.js:229 绘制时间:2
canvasDemo.js:184 间隔时间:5212
canvasDemo.js:229 绘制时间:5
canvasDemo.js:184 间隔时间:6237
在真机调试时,虽然绘制时间很短,但定时器设置为500ms时,定时器定时间隔超出500毫秒,近1秒,微信集成环境下调试正常(定时器间隔500ms),啥情况??