【微信小程序开发(原生)】canvas 动画

本文介绍了如何在微信小程序中使用Canvas进行绘图,包括设置画布大小、绘制矩形以及从本地资源加载图片。同时,提到了使用`createImage`方法来避免小程序中`Image`未定义的问题。还讨论了通过不断绘制和清除实现动画的技巧,但警告称在微信小程序中,复杂的Canvas动画可能导致性能问题,建议简单动画使用CSS3来实现。
摘要由CSDN通过智能技术生成
  <!-- canvas.wxml -->
  <canvas type="2d" id="myCanvas"></canvas>
// canvas.js
Page({
  onReady() {
    const query = wx.createSelectorQuery()
    query.select('#myCanvas')
      .fields({ node: true, size: true })
      .exec((res) => {
        const canvas = res[0].node
        const ctx = canvas.getContext('2d')

        const dpr = wx.getSystemInfoSync().pixelRatio
        canvas.width = res[0].width * dpr
        canvas.height = res[0].height * dpr
        ctx.scale(dpr, dpr)

        ctx.fillRect(0, 0, 100, 100)
      })
  }
})

以上是官方的canvas demo

其中 如果需要drawImage, 加载工程目录下的图片,

JavaScript 的 canvas 是这么写的

var image = new Image();
image.src="/images/head.jpeg";
image.onload=function(){
	ctx.drawImage(this,0,0,60,60,0,0,120,120);
}

小程序里如果这么写就会报错 没有定义Image

对它需要这样

var img = canvas.createImage();
image.src="/images/head.jpeg";
image.onload=function(){
	ctx.drawImage(this,0,0,60,60,0,0,120,120);
}

这样就OK了

清除画布

ctx.clearRect

不停的画 不停地清除,就可以实现动画

但是微信小程序在这种时候,性能不行就崩溃了,所以简单的动画在微信小程序还是用CSS3完成比较好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左钦杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值