如js中所示,显示的词汇是word 和 word2,想要增加一个按键(bindtap="changing"),一键下去,word和word2会更新自己的内容。
但是目前的效果是,按了按钮canvas上并不会更新文字。不知道有没有什么解决办法?
js:
var word = "你是XX星"
var word2 = "某某形容词"
changing:function(){
word:"你是五颗星"
word2:"美好的 闪亮的"
},
wx.createSelectorQuery()
.select('#canvas')
.fields({
node: true,
size: true
})
.exec(async (res) => {
const canvas = res[0].node;
// Canvas 绘制上下文
const ctx = canvas.getContext('2d');
//画布大小根据屏幕分辨率进行缩放,防止模糊
const renderWidth = res[0].width
const renderHeight = res[0].height
// 初始化画布大熊啊
const dpr = wx.getSystemInfoSync().pixelRatio
canvas.width = renderWidth*dpr
canvas.height = renderHeight*dpr
ctx.scale(dpr, dpr)
//画布背景色
ctx.fillStyle = "white";
//ctx.fillRect(0, 0, canvas.width, canvas.height)
//画图片
const image = canvas.createImage()
image.src = "图片地址1"
image.onload = ()=>{
ctx.drawImage(image,0,0,414,650)
ctx.fillStyle = "white";
ctx.font= 'normal bold 20px sans-serif'
ctx.fillText(word,100,320)
ctx.font= 'normal bold 20px sans-serif'
ctx.fillText(word2,100,350)
}
const image2 = canvas.createImage()
image2.src = "图片地址2"
image2.onload = ()=>{
ctx.drawImage(image2,30,0,350,350)
}
内容改变画布不会动态改变的,需要重新绘制,把画图写成个方法,修改内容重新调用一下