项目场景:uniapp 使用canvas
提示:
绘制海报过程中微信开发工具报错所canvas最好使用2d,然后我使用2d后一直画图失败,error也监听不到报错,这个为题一直折磨了我好久
问题描述
提示:
画图一直走到draw都没有问题,但是不生成图像也不报错
<canvas type="2d" @error="error" :style="{ width: canvasW + 'px', height: canvasH + 'px' }" canvas-id="my-canvas"></canvas>
原因分析:
提示:小程序canvas2d默认会保存上次绘制的图像,不用调用draw(true)就有这种效果。注意使用canvas.width和canvas.height,会导致重绘而失去这种效果。
例如:Handler
发送消息有两种方式,分别是 Handler.obtainMessage()
和 Handler.sendMessage()
,其中 obtainMessage
方式当数据量过大时,由于 MessageQuene
大小也有限,所以当 message
处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。
解决方案:
提示:我的解决方法简单粗暴去掉type=2d就可以用了
<canvas @error="error" :style="{ width: canvasW + 'px', height: canvasH + 'px' }" canvas-id="my-canvas"></canvas>