新手一枚,在学习canvas时碰到以下疑问,根据开发文档自己写demo的时候,在离屏canvas上画了一个红色的矩形,然后在上屏canvas上画一个黄色的矩形,然后把离屏canvas绘制到上屏canvas上,代码如下
var screenCanvas = wx.createCanvas()var offScreenCanvas = wx.createCanvas()var offContext = offScreenCanvas.getContext('2d')offContext.fillStyle = 'red'offContext.fillRect(0, 0, 100, 100)var screenContext = screenCanvas.getContext('2d') screenContext.fillStyle = 'yellow' screenContext.fillRect(50,50,100,100)screenContext.drawImage(offScreenCanvas, 0, 0) |
保存以后,模拟器确实得到了预期的结果
然后我想把矩形换成图片,代码修改如下:
var screenCanvas = wx.createCanvas()var offScreenCanvas = wx.createCanvas()var offContext = offScreenCanvas.getContext('2d')var offImg = wx.createImage()offImg.onload = function(){ offContext.drawImage(offImg,0, 0)}offImg.src = 'images/enemy.png'var screenContext = screenCanvas.getContext('2d') var screenImg = wx.createImage() screenImg.onload = function(){ screenContext.drawImage(screenImg,50, 50) } screenImg.src = 'images/hero.png'screenContext.drawImage(offScreenCanvas, 0, 0) |
可是结果只画了上屏的图片,即hero.png,而没有画出离屏的图片,即enemy.png,请教下是我哪里写得不对吗?

解决了吗 我也遇到这问题了
下面的那些代码放在onload里面
一样的问题,想用离屏解决一些绘制,但是我发现wx.createCanvas竟然没有这个借口,请问楼主如何实现的?