canvas对象事件不能多次触发是什么原因
以bindtouchstart为例,点击firstCanvas触发[代码]touch[代码]事件,在secondCanvas绘制变量i,pc端模拟器一直正常工作,到了手机预览测试时,多次快速点击或者拖动图像后就会卡住不再触发事件,必须清空缓存重新打开才能工作,一部安卓4.2一部安卓5.0都频繁出现这个问题,难道是系统问题 [代码]<!-- canvas.wxml -->[代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"section"[代码][代码]>[代码][代码]<[代码][代码]canvas[代码] [代码]style[代码][代码]=[代码][代码]"width: 300px; height: 200px;background-color:grey"[代码] [代码]canvas-id[代码][代码]=[代码][代码]"firstCanvas"[代码] [代码]bindtouchstart[代码][代码]=[代码][代码]"touch"[代码][代码]></[代码][代码]canvas[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]<!-- 当使用绝对定位时,文档流后边的 canvas 的显示层级高于前边的 canvas -->[代码][代码]<[代码][代码]view[代码][代码]>[代码][代码]<[代码][代码]canvas[代码] [代码]style[代码][代码]=[代码][代码]"width: 300px; height:200px ; background-color:blue;"[代码] [代码]canvas-id[代码][代码]=[代码][代码]"secondCanvas"[代码][代码]></[代码][代码]canvas[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码][代码]var[代码] [代码]i=[代码][代码]0[代码][代码];[代码][代码]Page({[代码][代码] [代码][代码]canvasIdErrorCallback: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]console.error(e.detail.errMsg)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]touch: [代码][代码]function[代码][代码]()[代码][代码] [代码][代码]{[代码] [代码] [代码][代码]var[代码] [代码]context2 = wx.createCanvasContext([代码][代码]'secondCanvas'[代码][代码])[代码][代码] [代码][代码]context2.setFontSize([代码][代码]20[代码][代码])[代码][代码] [代码][代码]context2.fillText(++i, i+ [代码][代码]15[代码][代码], i + [代码][代码]30[代码][代码])[代码][代码] [代码][代码]context2.draw()[代码][代码] [代码][代码]}[代码][代码] [代码][代码],[代码][代码] [代码][代码]onReady: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]// 使用 wx.createContext 获取绘图上下文 context[代码][代码] [代码][代码]var[代码] [代码]context = wx.createCanvasContext([代码][代码]'firstCanvas'[代码][代码])[代码] [代码] [代码][代码]context.setStrokeStyle([代码][代码]"#00ff00"[代码][代码])[代码][代码] [代码][代码]context.setLineWidth([代码][代码]5[代码][代码])[代码][代码] [代码][代码]context.rect([代码][代码]0[代码][代码], [代码][代码]0[代码][代码], [代码][代码]200[代码][代码], [代码][代码]200[代码][代码])[代码][代码] [代码][代码]context.stroke()[代码][代码] [代码][代码]context.setStrokeStyle([代码][代码]"#ff0000"[代码][代码])[代码][代码] [代码][代码]context.setLineWidth([代码][代码]2[代码][代码])[代码][代码] [代码][代码]context.moveTo([代码][代码]160[代码][代码], [代码][代码]100[代码][代码])[代码][代码] [代码][代码]context.arc([代码][代码]100[代码][代码], [代码][代码]100[代码][代码], [代码][代码]60[代码][代码], [代码][代码]0[代码][代码], [代码][代码]2[代码] [代码]* Math.PI, [代码][代码]true[代码][代码])[代码][代码] [代码][代码]context.moveTo([代码][代码]140[代码][代码], [代码][代码]100[代码][代码])[代码][代码] [代码][代码]context.arc([代码][代码]100[代码][代码], [代码][代码]100[代码][代码], [代码][代码]40[代码][代码], [代码][代码]0[代码][代码], Math.PI, [代码][代码]false[代码][代码])[代码][代码] [代码][代码]context.moveTo([代码][代码]85[代码][代码], [代码][代码]80[代码][代码])[代码][代码] [代码][代码]context.arc([代码][代码]80[代码][代码], [代码][代码]80[代码][代码], [代码][代码]5[代码][代码], [代码][代码]0[代码][代码], [代码][代码]2[代码] [代码]* Math.PI, [代码][代码]true[代码][代码])[代码][代码] [代码][代码]context.moveTo([代码][代码]125[代码][代码], [代码][代码]80[代码][代码])[代码][代码] [代码][代码]context.arc([代码][代码]120[代码][代码], [代码][代码]80[代码][代码], [代码][代码]5[代码][代码], [代码][代码]0[代码][代码], [代码][代码]2[代码] [代码]* Math.PI, [代码][代码]true[代码][代码])[代码][代码] [代码][代码]context.stroke()[代码][代码] [代码][代码]context.draw()[代码][代码] [代码][代码]}[代码][代码]})[代码]