收藏
回答

Canvas draw(reserve,callback) 回调只能调一次

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug canvasContext.draw 客户端 2.0.9 2.0.9

var ctx;

onLoad: function (options) {

   ctx = wx.createCanvasContext('myCanvas');

   this.Draw();

},


Draw: function () {

   debugger

 let colors = ["#6A0000", "#900000", "#902B2B", "#A63232", "#A62626", "#FD5039", "#C12F2A", "#FF6540", "#f93801"];

   let colornum = colors[~~(Math.random() * colors.length)];

   ctx.setFillStyle(colornum)

   ctx.fillRect(10, 10, 150, 100)

   ctx.draw(false, this.Draw);

},

这时Draw()方法调用2次后停止,请问这是啥问题?应该无限调用啊!


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

2 个回答

  • 何平
    何平
    2020-05-21

    我也遇到这个问题,现在处理的方法是只draw一次,生成图片缓存起来,下次直接显示图片不再draw。ctx.draw(true, setTimeout(function(){that.Draw()},300));这样子

    2020-05-21
    有用
    回复
  • 是小白啊
    是小白啊
    2018-07-19

    麻烦给个相关的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html),我们定位下问题

    2018-07-19
    有用
    回复 4
    • 泡沫
      泡沫
      2018-07-19

      wechatide://minicode/3pavxxmc7sxQ

      2018-07-19
      回复
    • 是小白啊
      是小白啊
      2018-07-19回复泡沫

      ctx.draw(false, this.Draw() );,这样就可以了,但是这是十分损耗性能的,不建议这样操作

      2018-07-19
      回复
    • 泡沫
      泡沫
      2018-07-19回复是小白啊

      谢谢

      2018-07-19
      回复
    • 阿伟
      阿伟
      2018-08-09回复是小白啊

      意思是建议draw只调用一次吗??

      2018-08-09
      回复
登录 后发表内容