小程序中canvas测试心得

微信
小程序里的canvas 非 h5 canvas有很多不一样的地方,以下把微信
小程序的canvas叫做wxcanvas   下面全是我一点点测试出的干货,耐心看: 1.wxcanvas,不像h5canvas那样有width和height属性和width和height的style样式。他只有style样式,可以理解为他就是个框吧; 2.wxcanvas不要当成真的H5canvas,就当它是个div就行,画出范围的东西也是存在的,改变width,height就显示出来了,或者说这里有重绘,但具体如何实现的不知道; 3.改变wxcanvas的style的width,height,并不改为原画布上的东西的大小; 4.css transform变换中的变大缩小也无法改变原画布上的东西大小 5.官方说法:context只是一个记录方法调用的容器,用于生成记录绘制行为的actions数组。context跟<canvas/>不存在对应关系,一个context生成画布的绘制动作数组可以应用于多个<canvas/>。 实际上,context.getActions()后,context中的信息会被清空,如果想重复利用,需要var temp=context.getActions()将操作数组保存下来,才可重复用于wx.drawcanvas; 6.注意

  1. wx.drawCanvas({
  2.   canvasId: ‘target’,
  3.   actions: context.getActions()
  4. });

默认会清空画布,想不清空需要

  1. wx.drawCanvas({
  2.     canvasId: ‘target’,
  3.     actions: context.getActions(),
  4.     reserve:true
  5. });

7.重点

  1. <canvas disable-scroll=”true” catchtouchmove=”ccvsMove” bindtouchmove=”cvsMove” canvas-id=”target” id=”target” style=’width:{{width}}px;height:{{height}}px’></canvas>

注意,disable-scroll=”true”和bindtouchmove=”cvsMove”同时存在时才能避免页面跟着动,catchtouchmove是不行的 上面的写法,ccvsMove和cvsMove会都触发, ccvsMove返回的是普通touch事件对象,有pageX,clientX等, cvsMove返回的是canvasTouch事件对象,没有pageX,clientX,只有x,y 8.可以清空画布和画布的状态

  1. wx.drawCanvas({
  2.     canvasId: ‘target’,
  3.     actions: [],
  4.     reserve:false
  5. });

9.画布的scale tranlate rotate等状态,在reserve:true时会接着上次的状态 10. context.getActions()返回的数组很有用,打印出来你会发现里面的内容你都能看懂,可以直接修改数组改变画的动作 11.w x.drawCanvas时context.drawImage在手机上可以画出来,在电脑开发工具上画不出来 12.wx.canvasToTempFilePath 官方文档中只有一行,原来 wx.canvasToTempFilePath参数为一个对象包括canvasID,success,fail,complete,和wx.saveFile差不多;

  1. wx.canvasToTempFilePath({
  2.               canvasId: ‘target’,
  3.               success: function success(res) {
  4.                 wx.saveFile({
  5.                   tempFilePath: res.tempFilePath,
  6.                   success: function success(res) {
  7.                     console.log(‘saved::’ + res.savedFilePath);
  8.                   },
  9.                   complete: function fail(e) {
  10.                     console.log(e.errMsg);
  11.                   }
  12.                 });
  13.               },
  14.               complete: function complete(e) {
  15.                 console.log(e.errMsg);
  16.               }
  17.             });

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

【小程序源码网资源版权风险说明】:
本站为避免不必要的纷争,分享的所有资源中一切可能有版权风险的资源将全部转载自第三方网站或平台,站长只为大家提供相关资源的介绍和跳转引导。 因可能有疏忽大意,所以如有遗漏资源侵犯了您的合法权利,请联系站长删除。
【小程序源码网资源下载使用说明】:
本站所分享的一切QQ小程序源码,thinkphp整站源码,微信小程序源码,图文教程等资源仅供用户学习参考使用,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网毫无人看的介绍】:
本站又称Z站,原名贼娘网,开站于2018年,换过三任站长,目前站长是第四任站长,本站是一个主要分享免费开源小程序源码/网站源码/免费素材/教程资源的网站,主要小程序资源有用于学习的小程序源码,也有正版原创可商用的小程序源码,是一个公益博客型网站。
【小程序源码网原创源码版权申明】:
未经小程序源码网许可,任何人不得擅自使用本站原创首发源码进行商业行为(除本站VIP用户在期限内,版权无使用限制),否则将依法承担相应赔偿责任。
【小程序源码网转载文章版权申明】:
本站所转载的QQ小程序或微信小程序源码与其他资源仅供学习,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网站长最后的屁话】:
如有您认为本站有任何侵犯您合法权益的文章,或者您有什么疑问需求,欢迎联系站长QQ,站长24小时在线,备注公司名称和源码版权问题或者需要小程序定制开发等站长业务类型可急速处理,如果您只是交流小程序的一些开发问题或源码问题可以加入QQ群讨论,就不用加站长啦,对于白嫖党,QQ群才是处理问题的天堂,当然站长也欢迎大家骚扰~
小程序源码网 » 小程序中canvas测试心得
嘿,投喂下嘛!