import { tyDraw, Shape } from '@tuya-miniapp/miniapp-canvas' Page({ data: { userInfo: {}, hasUserInfo: false, tyCanvas: null, }, //事件处理函数 bindViewTap: function () { ty.navigateTo({ url: '../logs/logs', }) }, bindtouchstart: function (e) { // 检测手指点击事件 // console.log(e); this.tyCanvas.touchstartDetect(e) }, bindtouchmove: function (e) { // 检测手指点击 之后的移动事件 // console.log(e); this.tyCanvas.touchmoveDetect(e) }, bindtouchend: function () { //检测手指点击 移出事件 this.tyCanvas.touchendDetect() }, bindtap: function (e) { // console.log(e); this.tyCanvas.tapDetect(e) }, bindlongpress: function (e) { // console.log(e); this.tyCanvas.longpressDetect(e) }, onLoad: function () { /** * */ // console.log(requestAnimationFrame); var context = ty.createCanvasContext('polygon') // Fill with gradient this.tyCanvas = new tyDraw(context, 0, 0, 400, 500) /** * 由于 小程序没有Dom 操作,所以没法获取canvas高度以及绘图的起点 * 所以 tyDraw初始化的时候 需要设置 以便点击检测的时候使用 */ let polygon = new Shape( 'polygon', { x: 200, y: 100, r: 40, sides: 3, fillStyle: '#FC354C', rotate: Math.PI / 4 }, 'mix', true ) this.tyCanvas.add(polygon) let p2 = polygon.clone() let p3 = polygon.clone() this.tyCanvas.add(p2) this.tyCanvas.add(p3) p2.updateOption({ y: 200, rotate: Math.PI / 5, fillStyle: '#7CB490', sides: 5 }) p3.setOrigin([100, 10]) p3.updateOption({ y: 300, isLineDash: true, sides: 13, rotate: 10 }) }, onUnload: function () { this.tyCanvas.clear() //推荐这个 }, })