收藏
回答

Canvas

问题模块 框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 canvas 客户端 6.6.1 1.9.1

反馈一个 Bug :


* Bug 表现是什么?预期表现是什么?

canvas 中调用clip方法只能调用2次,第三次调用不成功。在开发者工具没有这个bug,只存在于上传的开发版/体验版。


* 如何复现?

您打开任何一个页面,在load里面创建一个canvas:

var cxt = wx.createCanvasContext('myCanvasTag');


var drawAvatar = (face, x, y) => {

    cxt.save();

    var len = size / 2;

    cxt.beginPath();

    cxt.arc(x, y, len, 0, 2 * Math.PI);//创建圆形剪裁路径

    cxt.clip();//剪裁, 微信Production版本的bug,同一个canvas只能调用两次,第三次不work

    cxt.stroke();

    cxt.drawImage(face, x - len, y - len, size, size);

    cxt.restore();

}


var pic1 = '../../face1.png';

var pic2 = '../../face2.png';

var pic3 = '../../face3.png';

drawAvatar(pic1, 50, 50);

drawAvatar(pic2, 100, 100);

drawAvatar(pic3, 200, 200);


cxt.draw();

您可以自己随便找几张图试一下。在本地应该是能够显示三个原型的头像,但是一旦上传到体验版本或者直接开发预览,用手机打开,只能见到两个头像。

如果把clip方法去除,则本地和开发预览版本保持一致,都是三个头像。

因此就是somehow clip只能做两次,第三次及以后都不成功。你自己加多个头像一样。





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

2 个回答

  • 夜云
    夜云
    2018-01-31

    我也遇到这个问题了,安卓还是正常的,ios不行

    2018-01-31
    赞同
    回复
  • 马树军
    马树军
    2018-02-04

    我也遇到这个问题了,安卓还是正常的,ios不行。求官方解答

    2018-02-04
    赞同
    回复