微信小程序 canvas API详解及实例代码


Posted in Javascript onOctober 08, 2016

微信小程序 canvas API详解及实例代码

绘图是每个移动应用必备的技术,基本上和Android,IOS,等移动开发都是相同的,创建个上下文,给你个画布再上画,官网给的小例子都比较全了自己去看吧,drawImage时没有反应不知道是BUG还是电脑不能测试待定,http://wxopen.notedown.cn/api/api-canvas.html

屏幕就像是数学上的坐标轴,且在第四象限,以屏幕左上角为圆点,X轴向右为正向左为负,Y轴向下为正向上为负(这点和数学上相反的)以圆点为基点画个距离圆点上下50宽高100的矩形来演示canvas基本用法

微信小程序这里提供了两个API

wx.createContext() 创建并返回绘图上下文context对象

getActions 获取当前context上存储的绘图动作,对应wx.drawCanvas(object)中的actions
clearActions 清空当前的存储绘图动作

wx.drawCanvas(object) 绘制

canvasId 画布标识,传入的cavas-id,这里的标识可以为Number,也可以是String
actions 绘图动作数组,由wx.createContext创建的context,调用getActions方法导出绘图动作数组。

绘图中可以进行变形,绘制,路径,样式,这些个东西有点多官网有例子,这里通过一个例子引入

wxml

<!--画布
 canvas-id 为画布标识,当绘制时通过canvas-id找到画布
-->
<canvas canvas-id="identify"/>

js

Page({
 data:{
  text:"Page canvas"
 },
 onLoad:function(options){
  // 页面初始化 options为页面跳转所带来的参数
 },
 onReady:function(){
  // 页面渲染完成
  //第一步创建个上下文容器
  var context = wx.createContext();

  //第二步绘制这里我们绘制个矩形 
  //x, y, widht, height
  context.rect(50, 50, 100, 100);
  //绘制的样式进行描边绘制,fill为填充位置
  context.stroke();
  /**
   * 调用wx.drawCanvas,通过canvasId指定在哪张画布上绘制,通过actions指定绘制行为
   * 
   *  注意convasId可以为数字表示也可以用字符串表示,就是一个绘制对象的标识,并且可以指定多个
   *  actions 是从context上下文中获取的绘制行为,即为第二步操作
   */

  wx.drawCanvas({
   //画布标识,传入<canvas/>的cavas-id
   canvasId: 'identify',
   //获取绘制行为, 就相当于你想做到菜context.getActions()就是食材
   actions: context.getActions(),
  })


 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})

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

Javascript 相关文章推荐
JavaScript Array对象扩展indexOf()方法
May 09 Javascript
js实现简单的购物车有图有代码
May 26 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
javascript中Date format(js日期格式化)方法小结
Dec 17 Javascript
js简易版购物车功能
Jun 17 Javascript
基于EasyUI的基础之上实现树形功能菜单
Jun 28 Javascript
详解webpack介绍&amp;安装&amp;常用命令
Jun 29 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
Vuex 在Vue 组件中获得Vuex 状态state的方法
Aug 27 Javascript
vue二级菜单导航点击选中事件的方法
Sep 12 Javascript
浅析vue中的MVVM实现原理
Mar 04 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
微信小程序 animation API详解及实例代码
Oct 08 #Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 #Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 #Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 #Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 #Javascript
Javascript单例模式的介绍和实例
Oct 08 #Javascript
jquery把int类型转换成字符串类型的方法
Oct 07 #Javascript
You might like
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP获得数组交集与差集的方法
2015/06/10 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
Seajs源码详解分析
2019/04/02 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
Python实现的字典值比较功能示例
2018/01/08 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
2014年党务工作总结
2014/11/25 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
体育教师教学随笔
2015/08/15 职场文书