canvas重绘卡顿
发布于 5 年前 作者 vding 6549 次浏览 来自 问答

小程序真机上面不支持requestAnimationFrame,但是可以在微信开发者工具上面运行requestAnimationFrame,没办法就改成

setTimeout去绘制canvas,但是绘制几次后就会严重掉帧…有没有什么其它好的解决方案或者建议啊…实在是没办法定位到问题

3 回复

CanvasContext.draw(boolean reserve, function callback)

将之前在绘图上下文中的描述(路径、变形、样式)画到 canvas 中。

参数

boolean reserve

本次绘制是否接着上一次绘制。即 reserve 参数为 false,则在本次调用绘制之前 native 层会先清空画布再继续绘制;若 reserve 参数为 true,则保留当前画布上的内容,本次调用 drawCanvas 绘制的内容覆盖在上面,默认 false。

研究了半响其实是

draw

这玩意导致的卡顿

分固定的画图 + 动态的画图。 先画固定的画图,画完保存为临时图片文件(wx.canvasToTempFilePath),然后定时器里 画的时候先把前面保存的图片贴上去(CanvasContext.drawImage), 再画动态的部分。

我引入好几张图片放入画布,真机运行也卡顿得很,ios 12.1

回到顶部