反馈一个 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只能做两次,第三次及以后都不成功。你自己加多个头像一样。