收藏
回答

canvas重绘卡顿

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug createCanvasContext 客户端 7.0.3 2.6.0

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

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

最后一次编辑于  02-18  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 木偶
    木偶
    02-19

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

    02-19
    赞同
    回复 1
    • 兰昊
      兰昊
      03-19

      不只是渲染卡,连开发工具都停止响应了。

      03-19
      回复
  • zjieho
    zjieho
    02-20

    CanvasContext.draw(boolean reserve, function callback)

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

    参数

    boolean reserve

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

    研究了半响其实是

    draw

    这玩意导致的卡顿

    02-20
    赞同
    回复 2
    • happi风
      happi风
      02-26

      请问你知道卡在哪里,然后有解决办法吗?

      02-26
      回复
    • 兰昊
      兰昊
      03-19回复happi风

      没有办法解决,因为这个接口需要和Native通信。建议给客户购买双卡双待的Iphone来解决这个问题。

      03-19
      回复
  • 邱一欢
    邱一欢
    02-21


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


    02-21
    赞同
    回复 1
    • 兰昊
      兰昊
      03-19

      我画动画 画出来就是PPT。

      03-19
      回复