收藏
回答

canvas绘制图片被覆盖问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug Canvas drawImage(dx, dy, dWidth, dHeight) 客户端 6.6.6 2.0.1

一、需求:

绘制两个canvas,用来绘制两个区域的动画,

canvas1和Canvas2有重叠的区域,

canvas2需要覆盖在canvas1上边;

Canvas1绘制的大图片200kb,canvas2绘制的小图片5kb,

绘图顺序,先绘制canvas1,后绘制canvas2。

二、问题: 1. 第一次初始化时,正常,没有问题; 2. 因为触发一些条件,然后重绘这两个Canvas,canvas1却覆盖在了canvas1上边; 3. 使用settimeout延时绘制canvas2,无效。

4. 有帖子说:

<block wx:if="{{condition}}">

导致的局部渲染造成了block里面的canvas绘制的内容 会覆盖到其它canvas绘制内容上面。

但是我这个项目两个canvas显示都需要进行wx:if判断:



5.尝试将需要先绘制的canvas1的wx:if条件限制去掉,问题依旧。

6. 经测试,ios和android都有这样的问题。

----------------

好像是drawimage大图片总是在小图片绘制完之后才进行绘制,而跟canvas绘制顺序没有关系。

请问能否给个解决方案,这个问题比较紧急。。。

回答关注问题邀请回答
收藏

1 个回答

  • 已注销
    已注销
    2018-06-11

    小程序一个页面最好只是用一个canvas,用多了会出现页面卡顿,也不好控制

    2018-06-11
    赞同
    回复 1
    • zf
      zf
      2018-06-13

      nono,那有的使用场景是统计图表,那还得需要多个Canvas呢,

      并且我现在这个需求两个canvas还全部都是做动画功能使用

      2018-06-13
      回复
登录 后发表内容