微信小程序 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 相关文章推荐
angular.bind使用心得
Oct 26 Javascript
js实现登录验证码
Dec 22 Javascript
原生js实现放大镜
Feb 20 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 Javascript
node.js中axios使用心得总结
Nov 29 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
Nov 02 Javascript
使用NestJS开发Node.js应用的方法
Dec 03 Javascript
关于Vue源码vm.$watch()内部原理详解
Apr 26 Javascript
JavaScript获取某一天所在的星期
Sep 05 Javascript
基于JS实现父组件的请求服务过程解析
Oct 14 Javascript
原生js实现点击轮播切换图片
Feb 11 Javascript
javascript实现前端分页功能
Nov 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将session放入memcached的设置方法
2014/02/14 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
javascript的事件描述
2006/09/08 Javascript
非常漂亮的JS代码经典广告
2007/10/21 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
js作用域及作用域链概念理解及使用
2013/04/15 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
详解如何解决vue开发请求数据跨域的问题(基于浏览器的配置解决)
2018/11/12 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
Vue select 绑定动态变量的实例讲解
2020/10/22 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
利用python将图片转换成excel文档格式
2017/12/30 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
详解python中递归函数
2019/04/16 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
面向对象编程的优势是什么
2015/12/17 面试题
顺丰快递Java软件工程师面试题
2015/07/31 面试题
自主招生自荐书
2013/11/29 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
婚庆公司计划书
2014/09/15 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
趣味运动会标语口号
2015/12/26 职场文书