canvas.drawImage() 出错,画布被重复复制了
就是把官方 demo 中的 __game.js __内容替换成
var c = wx.createCanvas(); var ctx = c.getContext( '2d' ); var img = wx.createImage(); img.onload = function () { ctx.drawImage( this , 0, 0); ctx.fillStyle= "#000" ; ctx.fillRect(100,100,100,100); } img.src = "images/bg.jpg" ; |
在所有 Android 手机上变成了下图,看底部,很明显 canvas 被重复的赶脚
6 回复
@ 官方:小辣椒
我后来又各种调试了下,如果图片沾满全屏幕,也就是使用
|
那么就不会出错,当然,这不是不会出错,而是最顶上的画布把其它画布都遮住了
更坑的一点,就是在 ___img.onload() ___不绘制图片,而是绘制其它的, 也会造成画布重复
所以我还以为是 __onload() 的__锅
后来发现这是想当然了
不使用 __onload() __而是使用延迟绘制
|
图样图森破,还是会有刚刚的 bug…
我该怎么办?
为了解决这个问题,我采用了什么办法?
不是解决了问题,而是取巧,既然最顶上的画布会遮住其它的画布,那么很简单,就先绘制一个不透明的颜色,然后再绘制图片…