代码里有些字符看不见,可以ctrl+A全选看见
一个canvas的问题?play_music:function(e){ this.setData({'globalData.song_title':e.currentTarget.dataset.song_title}) this.setData({'globalData.singer_name':e.currentTarget.dataset.singer_name}) this.setData({'globalData.song_img':e.currentTarget.dataset.song_img}) app.play_music(voice_url); var _that = this; wx.createSelectorQuery().select('#canvas').fields({ node: true, size: true }).exec((res) => { // Canvas 对象 // console.log(res) const canvas = res[0].node _that.canvas = canvas // Canvas 画布的实际绘制宽高 const width = res[0].width const height = res[0].height // 创建canvas渲染上下文 const ctx = canvas.getContext('2d') const dpr = wx.getWindowInfo().pixelRatio // console.log('---dpr', dpr) // 手动改变canvas的宽和高 canvas.width = width * dpr canvas.height = height * dpr ctx.scale(dpr, dpr) // 以上代码都是基础工作,给canvas写css样式时可以使用rpx单位。 ctx.beginPath(); ctx.strokeStyle = 'white'; ctx.lineWidth = _that.rpx2px(3); ctx.arc(_that.rpx2px(25),_that.rpx2px(25),_that.rpx2px(23),0,1*Math.PI,false); ctx.stroke(); }) } 我在一个函数里,先用了this.setData,然后在canvas绘图,但是canvas画不出来。然后我把函数里的代码,原样放在onready方法里,canvas可以画出圆弧。 如果我把这个函数里的this.setData语句去掉,canvas也是能绘图的。 有大神知道什么原因吗
2023-07-20