微信小程序canvas

5276关注15678浏览

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





展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 万劫

    11人对此回答表示赞同

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

    展开
    11
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 火山飞灰

    6人对此回答表示赞同

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

    展开
    6
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部