微信小程序开发实战教程第6章API应用案例(下)课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微信小程序开发实战教程第6章API应用案例(下)课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微信小 程序 开发 实战 教程 API 应用 案例 课件
- 资源描述:
-
1、微信小程序第6章 API应用案例(下)【案例5】模拟时钟【案例7】文件上传与下载【案例6】罗盘动画【案例8】在线聊天系统 学习目标掌握熟悉了解掌握canvas的用法12熟悉canvas 的API对象的用法3了解animation动画的用法4掌握WebSocket的使用 目录点击查看本节相关知识点【案例6】罗盘动画6.26.2点击查看本节相关知识点6.36.3【案例7】文件上传与下载点击查看本节相关知识点【案例5】模拟时钟6.16.1点击查看本节相关知识点【案例8】在线聊天系统6.46.4 知识架构6.1【案例案例5】模拟时钟模拟时钟1案例分析2前导知识3钟表页面布局4钟表页面绘制 知识架构6.
2、2【案例案例6】罗盘动画罗盘动画1案例分析2前导知识3设计罗盘页面布局4手指触摸旋转罗盘5单击按钮操作罗盘 知识架构6.3【案例案例7】文件上传与下载文件上传与下载1案例分析2前导知识3录音和上传4文件的下载 知识架构6.4【案例案例8】在线聊天系统在线聊天系统1案例分析2前导知识3编写Node.js服务器端代码4实现通信功能5编写聊天页面 6.1【案例5】模拟时钟 案例分析 模拟时钟任务需求任务需求:p 使用canvas绘制时钟,实现模拟时钟的功能。p 钟表时间与系统时间保持一致,刻度将24小时制转化为12小时制。p 绘制中心圆p 绘制外层大圆p 绘制分针、时针、秒针。6.1【案例5】模拟时
3、钟 案例分析 页面效果图:时钟模拟 6.1【案例5】模拟时钟 前导知识 canvas组件(原生组件,默认宽高为300px*225px)canvas 常用属性常用属性属性属性类型类型说明说明canvas-idStringcanvas组件的唯一标识符disable-scrollBoolean触摸点在canvas区域移动时且有绑定手势事件时,禁止屏幕滚动及下拉刷新bindtouchstartEventHandle手指触摸动作开始bindtouchmoveEventHandle手指触摸后移动bindtouchendEventHandle手指触摸动作结束bindtouchcancelEventHandl
4、e手指触摸动作被打断,如来电提醒、弹窗bindlongtapEventHandle手指长按500ms后触发,触发了该事件后进行移动不会触发屏幕的滚动binderrorEventHandle当发生错误时触发error事件,detail=errMsg:something wrong 6.1【案例5】模拟时钟 前导知识 canvas用法用法:p 创建canvas.wxml文件。canvas width:300px;height:150px;display:block;position:relative;p canvas组件默认样式如下。6.1【案例5】模拟时钟 前导知识 canvas组件默认效果图:
5、6.1【案例5】模拟时钟 前导知识 值得一提值得一提canvas组件是原生组件,它的层级是最高的,不能通过z-index设置层级,css动画对canvas组件无效。6.1【案例5】模拟时钟 前导知识 canvas绘制矩形,演示绘制的基本步骤基本步骤p 第第1步步:创建Canvas绘图上下文对象CanvasContextconst ctx=wx.createCanvasContext(myCanvas)p 第第2步步:使用Canvas绘图上下文进行绘图描述ctx.setFillStyle(red)/设置填充色为红色/画一个矩形,填充为红色ctx.fillRect(10,20,150,75)/ct
6、x.fillRect(x,y,width,height)6.1【案例5】模拟时钟 前导知识 p 第第3步步:画图ctx.draw()矩形效果图:6.1【案例5】模拟时钟 前导知识 canvas绘制笑脸,示例代码如下:p 第第1步步:创建Canvas绘图上下文对象CanvasContextconst ctx=wx.createCanvasContext(myCanvas)p 第第2步步:设置线条颜色和线宽ctx.setStrokeStyle(#ff0000)ctx.setLineWidth(2)6.1【案例5】模拟时钟 前导知识 p 第第3步步:移动画笔坐标位置,绘制(外部大圆)ctx.move
7、To(160,100)ctx.arc(100,100,60,0,2*Math.PI,true)p 第第4步步:移动画笔坐标位置,绘制(嘴巴线条)ctx.moveTo(140,100)ctx.arc(100,100,40,0,Math.PI,false)6.1【案例5】模拟时钟 前导知识 p 第第5步步:移动画笔坐标位置,绘制(左眼圆圈)ctx.moveTo(85,80)ctx.arc(80,80,5,0,2*Math.PI,true)p 第第6步步:移动画笔坐标位置,绘制(右眼圆圈)ctx.moveTo(125,80)ctx.arc(120,80,5,0,2*Math.PI,true)p 第第
8、7步步:画出当前路径的边框ctx.stroke()6.1【案例5】模拟时钟 前导知识 p 第第8步步:移动画笔坐标位置,绘制(左眼圆圈)wx.draw()笑脸效果图:6.1【案例5】模拟时钟 前导知识 canvas对象方法介绍:p CanvasContext.draw():将之前在绘图上下文中的描述(路径、样式、变形)画到canvas中。p CanvasContext.arc():创建一条弧线。p CanvasContext.rect():创建一个矩形路径。p CanvasContext.lineTo():新增一个新点,用stroke方法来画线条。p CanvasContext.moveTo(
9、):把路径移动到画布中的指定点,不创建线条。6.1【案例5】模拟时钟 钟表页面布局 clock.wxml.mycanvas width:100%;height:100%;position:fixed;clock.wxss 6.1【案例5】模拟时钟 钟表页面绘制 Page(width:0,height:0,/初始化宽高 onLoad:function()wx.getSystemInfo(),/获取系统的宽高 timer:null,onReady:function()function draw()/绘制函数 function drawClock(ctx,radius)/绘制表盘部分 functio
10、n drawHand(ctx,radius)/绘制指针部分 )clock.js 6.2【案例6】罗盘动画 案例分析 风水罗盘动画任务需求任务需求:p 实现旋转动画效果。p 实现缩放动画效果。p 实现移动动画效果。p 实现倾斜动画效果。p 实现旋转和缩放动画同时效果。p 实现旋转后缩放动画效果。6.2【案例6】罗盘动画 前导知识 wx.createAnimation()wx.createAnimation()参数对象的常用属性参数对象的常用属性属性属性类型类型说明说明durationnumber动画持续时间,默认为400,单位mstimingFunctionstring动画的效果,默认为line
11、ardelaynumber动画延迟时间,默认为0,单位mstransformOriginstringtransformOrigin样式,默认为50%50%0 6.2【案例6】罗盘动画 前导知识 animation动画对象p animation.step():动画队列。p animation.export():导出动画。p animation.rotate(number angle):从原点顺时针旋转一个角度。p animation.scale(number sx,number sy):缩放。p animation.skew(number ax,number ay):倾斜p animation.
12、translate(number tx,number ty):平移变换。6.2【案例6】罗盘动画 设计罗盘界面布局 compass.wxml 6.2【案例6】罗盘动画 设计罗盘界面布局 旋转缩放移动倾斜旋转并缩放旋转后缩放同时展示全部按顺序展示全部回到原始状态compass.wxml 6.2【案例6】罗盘动画 手指触摸旋转罗盘var animationvar angle=0 var x1,y1,x3,y3/判断坐标系是顺时针还是逆时针function judgeturn(x1,y1,x3,y3)var x2=150 var y2=150 return!(x2-x1)*(y3-y2)-(y2-y
13、1)*(x3-x2)0)compass.js 6.2【案例6】罗盘动画 手指触摸旋转罗盘 onShow:function()animation=wx.createAnimation(duration:1000,timingFunction:ease,)start:function(e)x1=e.touches0.clientX;y1=e.touches0.clientY ,end:function(e)compass.js创建动画滑动开始滑动结束 6.2【案例6】罗盘动画 单击按钮操作罗盘 rotate:function()animation.rotate(Math.random()*720-
14、360).step()this.setData(animation:animation.export(),编写rotate()函数,实现从原点顺时针旋转一个角度 6.2【案例6】罗盘动画 单击按钮操作罗盘 scale:function()animation.scale(Math.random()*2).step()this.setData(animation:animation.export(),编写scale()函数,实现缩放效果 6.2【案例6】罗盘动画 单击按钮操作罗盘 translate:function()animation.translate(Math.random()*100-5
15、0,Math.random()*100-50).step()this.setData(animation:animation.export(),编写translate()函数,实现平移变换 6.2【案例6】罗盘动画 单击按钮操作罗盘 skew:function()animation.skew(Math.random()*90,Math.random()*90).step()this.setData(animation:animation.export(),编写skew()函数,实现对 X、Y 轴坐标进行倾斜 6.2【案例6】罗盘动画 单击按钮操作罗盘 rotateAndScale:functi
16、on()animation.rotate(Math.random()*720-360).scale(Math.random()*2).step()this.setData(animation:animation.export(),编写rotateAndScale()函数,实现旋转和缩放同时进行 6.2【案例6】罗盘动画 单击按钮操作罗盘 rotateThenScale:function()animation.rotate(Math.random()*720-360).step().scale(Math.random()*2).step()this.setData(animation:anima
17、tion.export(),编写rotateThenScale()函数,实现旋转之后再缩放 6.2【案例6】罗盘动画 单击按钮操作罗盘 all:function()/旋转-缩放-移动-倾斜 animation.rotate(Math.random()*720-360).scale(Math.random()*2).translate(Math.random()*100-50,Math.random()*100-50).skew(Math.random()*90,Math.random()*90).step()this.setData(animation:animation.export(),编
18、写all()函数,实现同时展示全部动画 6.2【案例6】罗盘动画 单击按钮操作罗盘 allOrder:function()/旋转-缩放-移动-倾斜 animation.rotate(Math.random()*720-360).step().scale(Math.random()*2).step().translate(Math.random()*100-50,Math.random()*100-50).step().skew(Math.random()*90,Math.random()*90).step()this.setData(animation:animation.export(),编
19、写allOrder()函数,实现按顺序展示全部动画 6.2【案例6】罗盘动画 单击按钮操作罗盘 reset:function()animation.rotate(0,0).scale(1).translate(0,0).skew(0,0).step(duration:0)this.setData(animation:animation.export()编写reset()函数,实现回到原始状态 6.3【案例7】文件上传与下载 案例分析 文件上传、下载案例任务需求任务需求:p 实现了请求服务器文件的上传与下载。p 实现调起设备录音功能。p 实现停止录音功能。p 实现播放录音功能。p 实现上传录音文
展开阅读全文