遇到同样问题, 目前看可能是异步onload,或者settimeout后调用的canvas绘制会清空(遮挡?)之前绘制的内容
小游戏问题,背景在真机显示不出来,cxt.draw找不到/** * 上层画布 */ const canvas = wx.createCanvas() const context = canvas.getContext('2d') //画背景 context.fillStyle = "#90d7ec"; context.fillRect(0, 0, DeviceInfo.windowWidth, DeviceInfo.windowHeight) /** * 双层for循环开始绘制气泡 */ for (let i = 0; i < column_count; i++) { let start_y = i * image_width + (i + 1) * space + y; for (let j = 0; j < row_count; j++) { let start_x = j * image_width + (j + 1) * space; let bubble = new Bubble(context, false, start_x, start_y) bubbles.push(bubble) } } 我的代码逻辑很简单,绘制就两个地方用到,第一次先绘制背景,也就是fillRect,然后在for循环里绘制气泡,也就是drawImage /** * 往画布上画具体的内容 */ canvas() { let image = wx.createImage(); image.src = this.broken ? destroy_img : perfect_img; image.onload = () => { this.context.drawImage(image, this.x, this.y,image.width,image.height,) } } 模拟器里表现完美,但是到真机上背景就是一片黑 模拟器: [图片] 真机: [图片] 另外,api文档上明确的说有cxt.draw()这个方法,为什么我调用一直报错,说没有这个方法,是文档没有更新还是我使用有问题,麻烦帮我看一下,真的太感谢了。
2019-04-26