微信小程序 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 相关文章推荐
借用Google的Javascript API Loader来加速你的网站
Jan 28 Javascript
解析JavaScript中的不可见数据类型
Dec 02 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
Jan 30 Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
Mar 01 Javascript
webpack4 升级迁移的实现
Sep 12 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
JS实现音乐钢琴特效
Jan 06 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 Javascript
使用javascript解析二维码的三种方式
Nov 11 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下过滤HTML代码的函数
2007/12/10 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
点击文章内容处弹出页面代码
2009/10/01 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
Vue源码解析之数组变异的实现
2018/12/04 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
python实现web方式logview的方法
2015/08/10 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
常见python正则用法的简单实例
2016/06/21 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
python实现自动解数独小程序
2019/01/21 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
营业经理岗位职责
2013/11/10 职场文书
抄作业检讨书
2014/02/17 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
企业法人授权委托书
2014/09/25 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
党员先进事迹材料
2014/12/19 职场文书
早恋主题班会
2015/08/14 职场文书
python实现批量移动文件
2021/04/05 Python
python Polars库的使用简介
2021/04/21 Python
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python
Java如何实现树的同构?
2021/06/22 Java/Android