微信小程序 canvas开发实例及注意事项

微信小程序 wxcanvas

测试手机为IPHONE6,开发者工具版本0.10.102800。开发者工具0.11.112301版本也一样

微信小程序里的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.注意

wx.drawCanvas({   canvasId: 'target',   actions: context.getActions() });

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

wx.drawCanvas({ canvasId: 'target', actions: context.getActions(), reserve:true });

7.《重点》

<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.

wx.drawCanvas({ canvasId: 'target', actions: [], reserve:false });

可以清空画布和画布的状态

9.画布的scale tranlate rotate等状态,在reserve:true时会接着上次的状态

10. context.getActions()返回的数组很有用,打印出来你会发现里面的内容你都能看懂,可以直接修改数组改变画的动作

11.wx.drawCanvas时context.drawImage在手机上可以画出来,在电脑开发工具上画不出来

12.wx.canvasToTempFilePath

官方文档中只有一行,原来

wx.canvasToTempFilePath参数为一个对象包括canvasID,success,fail,complete,和wx.saveFile差不多;

wx.canvasToTempFilePath({ canvasId: 'target', success: function success(res) { wx.saveFile({ tempFilePath: res.tempFilePath, success: function success(res) { console.log('saved::' + res.savedFilePath); }, complete: function fail(e) { console.log(e.errMsg); } }); }, complete: function complete(e) { console.log(e.errMsg); } });

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-09-25 19:02:11

微信小程序 canvas开发实例及注意事项的相关文章

微信小程序 canvas开发实例及注意事项_Android

微信小程序 wxcanvas 测试手机为IPHONE6,开发者工具版本0.10.102800.开发者工具0.11.112301版本也一样 微信小程序里的canvas 非 h5 canvas有很多不一样的地方,以下把微信小程序的canvas叫做wxcanvas 下面全是我一点点测试出的干货,耐心看: 1.wxcanvas,不像h5canvas那样有width和height属性和width和height的style样式.他只有style样式,可以理解为他就是个框吧: 2.wxcanvas不要当成真的

《微信小程序:开发入门及案例详解》—— 1.3 第一个小程序

1.3 第一个小程序 完成开发准备后我们便可以开始编写小程序,微信小程序的开发十分简单,大家可以快速上手.下面我们利用官方提供的dmeo让大家对小程序开发有初步认识.1)打开微信开发者工具.第一次启动需要扫描二维码登录,如图1-9所示,开发权限配置参照上一小节. 2)登录后选择"添加项目".3)在填写项目信息之前,先创建一个空目录作为项目资源目录,这里我们以E:\weixin\demo为例.4)填写项目信息.如果没有AppID可以选择"无AppID":填写项目名称,

微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现

接着上面微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现.(第一二章:微信小程序开发教程,第三四章:微信小程序项目结构以及配置&微信小程序首页面开发,第五章:微信小程序名片夹详情页开发,第六章:「我」的页面开发,第七章:微信小程序编辑名片页面开发) 先来看看今天的整体思路: 进入分组管理页面-->点击新建分组新建 进入到未分组页面基本操作 进入到已建分组里面底部菜单栏操作-->从名片夹中添加进行操作. 理清完基本流程我们开始开发.首先整个布局可以先看下,我再一步步讲. 静态布

《微信小程序:开发入门及案例详解》—— 2.5 模块化

2.5 模块化 小程序逻辑层语言是JavaScript,而JavaScript作为脚本语言在设计初期仅是为了实现简单的页面交互,由Brendan Eich在1995年花了不到十天时间发明出来,语言本身缺失了很多用于支撑大型项目的设计,而现在前端业务逻辑越来越复杂,代码也越来越多,很多问题就暴露出来.模块化主要解决JavaScript中命名冲突和文件依赖这两个问题,现在模块化在前端中使用比较广泛,如Nodejs.Requirejs.Seajs.Webpack等,它们大部分都遵循或者接近Common

《微信小程序:开发入门及案例详解》—— 导读

前 言      自2016年9月21日微信小程序公布以来,微信技术群中关于小程序的讨论就没间断过,这是又一次创业的好机会,尤其是对中小企业扩大网络影响力很有利.我们在抓紧时间学习小程序的过程中,总结并实践了小程序的功能,并希望通过这本书传达给广大的读者.我们在编写过程中正临电商行业中最忙的几个月,双11.双12.圣诞节.元旦节等需求已经堆叠如山,我和边思白天处理公司需求,晚上编写书籍,几乎没有周末,这样坚持了几个月终于完成本书,直至交稿时才如释重负.      小程序刚发布不久,很多功能都还在

《微信小程序:开发入门及案例详解》—— 第2章 小程序开发核心 2.1 简介

第2章 小程序开发核心 上一章讲解了小程序创建流程,本章主要为大家讲解小程序框架及核心内容.小程序框架可让开发者在微信中用尽可能简单.高效的方式开发出具有原生App体验的服务,这套框架控制着小程序完整的生命周期,负责页面的加载.渲染.销毁等工作,它是小程序的核心,学习小程序前,我们一定要对这套框架有深入的了解.本章主要对小程序目录结构.文件类型进行详细分析,重点介绍小程序视图层WXML.MXSS,逻辑层JS,这些是小程序开发的核心内容.本章个别小节内容比较深,学习过程中不必过于深究,能对框架有个

PHP版微信小店接口开发实例_php技巧

本文实例讲述了PHP版微信小店接口开发方法.分享给大家供大家参考,具体如下: 首先 大家可以去下一份小店开发的 API接口 因为 下面所有的 微信小店接口 数据格式 参数 API手册 里面都有现成的 你可以直接拿来用 好了 下面上代码 这里给大家 下载微小店 API文档 这里就先拿查询商品作为例子 //首先第一步是 获取access_token的代码 我这里呢 对token做了存表里的 因为token有限制 private function access_token(){ appid=shopa

《微信小程序:开发入门及案例详解》—— 2.4 框架页面文件

2.4 框架页面文件 小程序中一个框架页面包含4个文件,同一框架页面的这4个文件必须具有相同的路径与文件名,进入小程序时或页面跳转时,小程序会根据app.json配置的路径找到对应的资源进行渲染. ◇ .js文件:页面逻辑文件,必要项. ◇ .wxml文件:页面结构文件,必要项. ◇ .wxss文件:页面样式文件. ◇ .json文件:页面配置文件. 与框架主体文件相比框架页面文件多了一种页面结构文件,其余3个文件和框架主体文件的功能类同,下面我们一一讲解每个文件作用. 2.4.1 页面配置文件

《微信小程序:开发入门及案例详解》—— 1.2 接入流程

1.2 接入流程 小程序与订阅号.服务号.企业号是并行的体系,具有独立的注册.发布流程.开发小程序首先前需要在微信公众平台上注册小程序,完善基本信息,然后下载开发者工具进行编码,最后通过开发者工具提交代码,官方审核通过后便可发布.要注意的是,现阶段每个机构账号只允许注册最多50个小程序,每个小程序一年需要缴纳300元,所有小程序都需要绑定一个电子邮箱,一个手机号码最多只能绑定5个小程序. 1.2.1 注册小程序帐号 注册小程序帐号只需如下四步: 1)在微信公众平台官网首页,点击右上角的"立即注册