当前位置:首页 > 日记 > 正文

微信小程序开发之麦克风动画 帧动画 放大 淡出

微信小程序开发之麦克风动画 帧动画 放大 淡出
想做个录音机,第一步就卡在麦克风动画这里了.

先上gif.再吐槽.

① 上面gif中声波的动画是个半成品.没有循环播放.在微信小程序的开发文档上找了很久,也没找到循环模式的参数设置.用setInterval()并不执行动画.我在微信小程序文档 动画最下面找到这么一行字.这个锅是不是可以甩出去了?

ps:如果有同学能实现动画循环,一定告诉我.

② 麦克风里面是个帧动画.没有前端的基础,只能用非主流的办法凑合了.

用wx:if{{}}判断js中定义的值是不是等于图片对应的数字来控制图片的显示和隐藏.css中应该有更好的方法.我css基础不牢,就不说了.

上代码:

1.index.wxml

<!--index.wxml--> <view class="voice-style" bindtap="startSpeak"> <image class="bg-style" src="../../images/voice_icon_speaking_bg_normal.webp" ></image> <image class="bg-style" animation="{{spreakingAnimation}}" src="../../images/voice_video_loading_0.webp"></image> <image class="bg-style" animation="{{spreakingAnimation_1}}" src="../../images/voice_video_loading_0.webp"></image> <image class="bg-style" animation="{{spreakingAnimation_2}}" src="../../images/voice_video_loading_0.webp"></image> <image class="sound-style" src="../../images/voice_icon_speech_sound_1.webp" ></image> <image wx:if="{{j==2}}" class="sound-style" src="../../images/voice_icon_speech_sound_2.webp" ></image> <image wx:if="{{j==3}}" class="sound-style" src="../../images/voice_icon_speech_sound_3.webp" ></image> <image wx:if="{{j==4}}" class="sound-style" src="../../images/voice_icon_speech_sound_4.webp" ></image> <image wx:if="{{j==5}}"class="sound-style" src="../../images/voice_icon_speech_sound_5.webp" ></image> </view> 

2.index.js

//index.js //获取应用实例 var app = getApp() Page({  data: {   spreakingAnimation: {},//放大动画   j: 1,//帧动画初始图片   isSpeaking: false,//是否在录音状态  },  onLoad: function () {  },  //点击开始说话  startSpeak: function () {   var _this = this;   if (!this.data.isSpeaking) {    speaking.call(this);    this.setData({     isSpeaking: true    })   } else {    //去除帧动画循环    clearInterval(this.timer)    this.setData({     isSpeaking: false,     j: 1    })   }  }, }) function speaking() {  //话筒帧动画  var i = 1;  this.timer = setInterval(function () {   i++;   i = i % 5;   _this.setData({    j: i   })   return  }, 200);  //波纹放大,淡出动画  var _this = this;  var animation = wx.createAnimation({   duration: 1000  })  animation.opacity(0).scale(3, 3).step();//修改透明度,放大  this.setData({   spreakingAnimation: animation.export()  })  setTimeout(function(){   //波纹放大,淡出动画  var animation = wx.createAnimation({   duration: 1000  })  animation.opacity(0).scale(3, 3).step();//修改透明度,放大  _this.setData({   spreakingAnimation_1: animation.export()  })  },250)   setTimeout(function(){   //波纹放大,淡出动画  var animation = wx.createAnimation({   duration: 1000  })  animation.opacity(0).scale(3, 3).step();//修改透明度,放大  _this.setData({   spreakingAnimation_2: animation.export()  })  },500) } 

3.index.wxss

/**index.wxss**/ .voice-style {  margin-top: 400px;  display: flex;  position: relative;  flex-direction: column;  align-items: center; } .bg-style {  position: absolute;  width: 100px;  height: 100px; } .sound-style{  position: absolute;  width: 37.6px;  height: 60px;  margin-top: 20px; } 

demo代码下载

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

相关文章

Photoshop简单几步制作字符文字

Photoshop简单几步制作字符文字

文字,字符,几步,简单,电脑软件,今天为大家介绍Photoshop简单几步制作字符文字方法,只需几步即可完成,好了,下面我们来学习吧!步骤:1、新建一块画布2、选择&ldquo;油漆桶工具&rdquo;,填充为黑色3、选择&ldquo;横排文字工具&rdquo;,设定如下4、在图…

jsp中实现带滚动条的table表格实例

jsp中实现带滚动条的table表格实例

实例代码,滚动条,表格,电脑软件,jsp,如下所示:<div style="width:700px; height:225px; overflow:auto;"> <table border="1" width="100%" cellpadding="0" cellspacing="0"> <tr> <td width="3%">0</td> <td width="7%…

react-native ListView下拉刷新上

react-native ListView下拉刷新上

上拉加载,下拉刷新,代码,电脑软件,react,本文介绍了react-native ListView下拉刷新上拉加载实现。分享给大家,具体如下:先看效果图下拉刷新React Native提供了一个组件可以实现下拉刷新方法RefreshControl使用方法<ListView refreshControl={…

qq安全中心取消绑定图解步骤

qq安全中心取消绑定图解步骤

取消,安全中心,绑定,步骤,方法,  多朋友现在换手机都很频繁,而QQ安全中心手机版又只能通过手机解绑。今天,晓霞李晓波就为大家分享一下QQ解绑QQ安全中心手机版的方法。qq安全中心取消绑定的方法首先,我们需要确保手机是否安装QQ安全中心手机…

Angular.js实现多个checkbox只能选

Angular.js实现多个checkbox只能选

方法,选择,多个,示例,电脑软件,首先来看看效果效果实现这样的效果,必须使用指令了,只有使用指令才能单独控制每一个scope。示例代码如下:<div class="form-group"> <label class="col-sm-2 control-label">请选择文章主题色彩</label> …

2013版ppt如何控件激活工具

2013版ppt如何控件激活工具

工具,控件,激活,方法,电脑软件,  很多人在用ppt的时候,会出现弹出提示为&ldquo;此演示文稿中的一些控件无法激活。这些控件可能未在此计算机中注册&rdquo;的问题,导致ppt中的动画无法正常播放,下面给大家分享PPT2013控件激活工具的方法,希望…

JS传播事件、取消事件默认行为、阻

JS传播事件、取消事件默认行为、阻

事件,默认,取消,详解,电脑软件,1.事件处理程序的返回值 通常情况下,返回值false就是告诉浏览器不要执行这个事件相关的默认操作。例如,表单提交按钮的onclick事件处理程序能通过返回false阻止浏览器提交表单,再如a标签的onclick事件处…

Angular.JS中指令ng-if、ng-show/n

Angular.JS中指令ng-if、ng-show/n

使用教程,指令,电脑软件,Angular,JS,前言最近在做一个项目改版,第一次在项目中真正使用Angular,和平时自己写写小demo,做做练习的感觉还是非常不同的,感觉非常的新鲜。有几个指令是经常用到的,这里由于这几个有点共性,所以一起介绍一下ng-if,ng…

ES6新特性三: Generator | 生成器函

ES6新特性三: Generator | 生成器函

函数,新特性,生成器,详解,电脑软件,本文实例讲述了ES6新特性三: Generator(生成器)函数。分享给大家供大家参考,具体如下:1. 简介① 理解:可以把它理解成一个函数的内部状态的遍历器,每调用一次,函数的内部状态发生一次改变。② 写法:function* f(…

word2007设置密码保护的两种方法

word2007设置密码保护的两种方法

设置,方法,密码保护,两种,电脑软件,  对于自己重要的word文档,肯定是需要加密保护更好。那么,对于word2007,怎么设置密码保护呢?那么下面就由小编给大家分享下word2007的技巧,希望能帮助到您。设置密码保护方法一:  步骤一:首先,我们先打开我…

PPT2010转换为视频的方法是什么

PPT2010转换为视频的方法是什么

方法,转换为,视频,电脑软件,  随着PPT制作越来越精美化、动感化和多媒体化,人们自然希望能把它完美转化成视频,发给客户自行观看、放在网页播放或者在DVD里播放。以下是小编为您带来的关于PPT2010转换为视频的方法,希望对您有所帮助。PPT201…

excel if函数等于条件的筛选方法ex

excel if函数等于条件的筛选方法ex

函数,条件,筛选,方法,电脑软件,  在Excel中,IF函数最为常用,IF函数可以帮用户筛选出合适的数据进行显示,现在请欣赏小编带来的excel if函数等于条件的筛选方法。希望对你有帮助!excel if函数等于条件的筛选方法&middot;在EXCEL2003中 函数 IF…