收藏
回答

想要在Canvas 2D中实现文字、图片的变化功能?

如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)
        }

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

1 个回答

  • |夏天|先生
    |夏天|先生
    2022-09-19

    内容改变画布不会动态改变的,需要重新绘制,把画图写成个方法,修改内容重新调用一下

    2022-09-19
    有用
    回复
登录 后发表内容