- 如何使用 wx.createSelectorQuery(),canvas 动态画环形图异常问题?
我想自定一个刻度环形进度条,在IDE工具中是可以动态重绘的,在真机上动态重绘不知道绘制到哪里去了,在动态重绘时感觉绘制是重叠的。 麻烦帮忙看看是什么原因? 或者有什么更好的方式实现。 效果图:[图片] [图片] 左图是第一次画的效果很好,再次绘制时就像右图那样,即使清楚了整个画布重绘效果也是这样。 代码片断: https://developers.weixin.qq.com/s/IRuQSEma7ihd
2020-05-27 - 通过 SelectorQuery 获取 Canvas 节点,绘图问题?
[代码]<[代码][代码]canvas[代码][代码] [代码][代码]type[代码][代码]=[代码][代码]"2d"[代码][代码] [代码][代码]id[代码][代码]=[代码][代码]"canvas"[代码][代码] [代码][代码]style[代码][代码]=[代码][代码]"width: 100%; height: 500px;"[代码][代码]></[代码][代码]canvas[代码][代码]>[代码][代码]Page({[代码][代码] [代码][代码]data: {[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]onLoad: [代码][代码]function[代码][代码]() { [代码][代码] [代码][代码]// 通过 SelectorQuery 获取 Canvas 节点[代码][代码] [代码][代码]wx.createSelectorQuery()[代码][代码] [代码][代码].select([代码][代码]'#canvas'[代码][代码])[代码][代码] [代码][代码].fields({[代码][代码] [代码][代码]node: [代码][代码]true[代码][代码],[代码][代码] [代码][代码]})[代码][代码] [代码][代码].exec([代码][代码]this[代码][代码].init.bind([代码][代码]this[代码][代码]))[代码][代码] [代码][代码]},[代码][代码] [代码][代码]init(res) {[代码][代码] [代码][代码]const canvas = res[0].node[代码][代码] [代码][代码]const ctx = canvas.getContext([代码][代码]'2d'[代码][代码])[代码][代码] [代码][代码]this[代码][代码].drawPath(ctx)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]drawPath(ctx){[代码][代码] [代码][代码]var[代码] [代码]dwidth = 800 / 80.0;[代码][代码] [代码][代码]var[代码] [代码]pos = Math.ceil(Math.random() * 75) + 30;[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < 80; i++) {[代码][代码] [代码][代码]ctx.beginPath();[代码][代码] [代码][代码]ctx.moveTo((i * dwidth), pos);[代码][代码] [代码][代码]var[代码] [代码]pos2 = Math.ceil(Math.random() * 75) + 30;[代码][代码] [代码][代码]ctx.lineTo(((i + 1) * dwidth), pos2);[代码][代码] [代码][代码]pos = pos2;[代码][代码] [代码][代码]ctx.stroke();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]ctx.strokeStyle = [代码][代码]"green"[代码][代码];[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 10; i < 80; i++) { [代码][代码]//清除后半部份继续绘制[代码][代码] [代码][代码]ctx.clearRect((i * dwidth), 0, ((i + 1) * dwidth), 150);[代码][代码] [代码][代码]ctx.beginPath();[代码][代码] [代码][代码]ctx.moveTo((i * dwidth), pos);[代码][代码] [代码][代码]var[代码] [代码]pos2 = Math.ceil(Math.random() * 75) + 30;[代码][代码] [代码][代码]ctx.lineTo(((i + 1) * dwidth), pos2);[代码][代码] [代码][代码]pos = pos2;[代码][代码] [代码][代码]ctx.stroke();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码] [代码]})[代码][图片][图片] 开发工具中显示是清晰的,在真机预览是模糊的,麻烦帮忙看一下是哪里的问题?
2019-10-26 - 关于后台wx.request 不请求,恢复到前台出现瞬间并发请求问题?
如果wx.request在后台运行时不发起请求,为什么在后台调用wx.request会堆积没有发送的请求,恢复到前台运行时就瞬间并发所有请求? 没有发送出去的请求会缓存队列中,恢复前台后一并发起? 除了切换后台控制不在调用wx.request,还有别的方式解决吗?
2019-10-23 - CanvasContext.clearRect 函数清除某个区域后怎么保留没有清除的区域继续绘制呢?
小程序中 Canvas 可以边清除边绘图吗?类似局部刷新。 CanvasContext.clearRect(number x, number y, number width, number height) 清除画布上在该矩形区域内的内容,这个函数清除某个区域后怎么保留没有清除的区域继续画呢? [图片] 能像javascript 中 Canvas 那样边清除边画,而不用每次都给整个canvas区域数据,重画整个canvas区域。 [图片]
2019-10-11