!function() {
getApp();
var t = "", e = "";
Page({
data: {
auto: !1,
count: 0,
audio: !0,
opengo: !0
},
onShow: function() {
if (wx.showShareMenu({
withShareTicket: !1,
menus: [ "shareAppMessage", "shareTimeline" ]
}), wx.getStorageSync("my" + this.getCurrentDate())) console.log(wx.getStorageSync("my" + this.getCurrentDate())),
this.setData({
count: wx.getStorageSync("my" + this.getCurrentDate())
}); else for (let t = -1; t > -3; t--) wx.removeStorageSync("my" + this.getCurrentDate(t));
},
onHide: function() {
this.innerAudioContext.stop(), this.timer && clearInterval(this.timer), this.setData({
auto: !1
});
},
resetcount: function() {
var t = this;
wx.showModal({
title: "提示",
content: "是否重置数据?",
success: function(e) {
e.confirm ? (wx.getStorageSync("my" + t.getCurrentDate()) && wx.removeStorageSync("my" + t.getCurrentDate()),
t.setData({
count: 0
})) : e.cancel && (console.log("用户点击取消"), wx.reportEvent("refresh", {
yesno: "no"
}));
}
});
},
openaudio: function() {
this.setData({
audio: !this.data.audio
});
},
onLoad: function() {
var n = this;
console.log(getApp().videoid), getApp().videoid && wx.createRewardedVideoAd && ((e = wx.createRewardedVideoAd({
adUnitId: getApp().videoid
})).onLoad(function() {}), e.onError(function(t) {}), e.onClose(function(t) {
t && t.isEnded ? n.overvideo() : wx.showToast({
title: "完整看完才能解锁哦~",
icon: "none"
});
})), getApp().interid && (wx.createInterstitialAd && ((t = wx.createInterstitialAd({
adUnitId: getApp().interid
})).onLoad(function() {}), t.onError(function(t) {}), t.onClose(function() {})),
setTimeout(function() {
t && t.show().catch(function(t) {
console.error(t);
});
}, 2e3)), this.innerAudioContext = wx.createInnerAudioContext(), this.innerAudioContext.src = "audio/qiaoji.mp3",
this.innerAudioContext.onPlay(function() {}), this.innerAudioContext.onError(function(t) {
console.log(t.errMsg), console.log(t.errCode);
}), this.innerAudioContext2 = wx.createInnerAudioContext(), this.innerAudioContext2.src = "audio/qiaoji.mp3",
this.innerAudioContext2.onPlay(function() {}), this.innerAudioContext2.onError(function(t) {
console.log(t.errMsg), console.log(t.errCode);
}), this.innerAudioContext3 = wx.createInnerAudioContext(), this.innerAudioContext3.src = "audio/qiaoji.mp3",
this.innerAudioContext3.onPlay(function() {}), this.innerAudioContext3.onError(function(t) {
console.log(t.errMsg), console.log(t.errCode);
}), this.innerAudioContext4 = wx.createInnerAudioContext(), this.innerAudioContext4.src = "audio/qiaoji.mp3",
this.innerAudioContext4.onPlay(function() {}), this.innerAudioContext4.onError(function(t) {
console.log(t.errMsg), console.log(t.errCode);
}), this.aniamtion = wx.createAnimation({
duration: 50,
transformOrigin: "right top",
timingFunction: "ease-in-out"
});
for (var o = 0; o < 10; o++) this["agd" + o] = wx.createAnimation({
duration: 250,
transformOrigin: "right top",
timingFunction: "ease-out"
});
},
overvideo: function() {
wx.setStorageSync("my-key", this.getCurrentDate()), this.timer = setInterval(this.konck, 700),
this.setData({
auto: !0
});
},
konck: function() {
this.data.audio && (this.data.count % 4 == 0 ? (this.innerAudioContext4.stop(),
this.innerAudioContext4.play()) : this.data.count % 3 == 0 ? (this.innerAudioContext3.stop(),
this.innerAudioContext3.play()) : this.data.count % 2 == 0 ? (this.innerAudioContext2.stop(),
this.innerAudioContext2.play()) : (this.innerAudioContext.stop(), this.innerAudioContext.play()));
var t = "" + this.data.count, e = t.substr("" + t.length - 1);
console.log(e);
var n = [ "agd" + e ];
this["agd" + e].top("51%").step().top("40%").opacity(1).step(50).opacity(0).step().step().top("51%"),
this.aniamtion.rotate(0).step().rotate(40).step(), this.setData({
animationData: this.aniamtion.export(),
[n]: this["agd" + e].export()
}), this.setData({
count: this.data.count + 1
}), wx.setStorageSync("my" + this.getCurrentDate(), this.data.count);
},
autoplay: function() {
return this.data.auto ? (this.timer && clearInterval(this.timer), this.setData({
auto: !1
}), !1) : wx.getStorageSync("my-key") && wx.getStorageSync("my-key") == this.getCurrentDate() ? (this.overvideo(),
!1) : void (e ? wx.showModal({
title: "未解锁",
content: "看一段视频,可在今天无限使用此功能",
confirmColor: "#439057",
success: function(t) {
t.confirm && e && e.show().catch(function() {
e.load().then(function() {
return e.show();
}).catch(function(t) {
this.timer = setInterval(this.konck, 700), this.setData({
auto: !0
});
});
});
}
}) : (this.timer = setInterval(this.konck, 700), this.setData({
auto: !0
})));
},
getCurrentDate: function(t = 0) {
const e = new Date();
e.setDate(e.getDate() + t);
const n = {
year: e.getFullYear(),
month: e.getMonth() + 1,
date: e.getDate()
};
return n.year + "" + (n.month >= 10 ? n.month : "0" + n.month) + (n.date >= 10 ? n.date : "0" + n.date);
},
onShareAppMessage: function(t) {
return {
title: wx.getStorageSync("my" + this.getCurrentDate()) ? "今日我已功德+" + wx.getStorageSync("my" + this.getCurrentDate()) + ",你也一起来敲电子木鱼吧!" : "我发现了一款不错的解压神器!快来试一试吧!",
path: "/pages/index/index",
imageUrl: "/images/index/share.jpg"
};
},
onShareTimeline: function() {
return {
title: wx.getStorageSync("my" + this.getCurrentDate()) ? "今日我已功德+" + wx.getStorageSync("my" + this.getCurrentDate()) + ",你也一起来敲电子木鱼吧!" : "我发现了一款不错的解压神器!快来试一试吧!",
imageUrl: "/images/index/share.jpg"
};
},
onAddToFavorites: function(t) {
return {
title: "功德木鱼",
imageUrl: "/images/index/share.jpg"
};
}
});
}();
电子木鱼静心小程序源码
需积分: 0 78 浏览量
更新于2023-03-11
3
收藏 1.46MB ZIP 举报
【电子木鱼静心小程序源码】是一款专为用户提供冥想静心服务的微信小程序的源代码。通过这款小程序,用户可以模拟敲击木鱼的声音,达到放松心情、集中注意力的效果。源码的分析和理解有助于开发者学习如何利用微信小程序平台开发类似的交互式应用。
1. **微信小程序基础**:
微信小程序是一种轻量级的应用开发框架,由腾讯公司推出,用于在微信内部运行无需安装的应用。它基于JavaScript,提供了自己的API和组件库,用于构建用户界面和实现业务逻辑。
2. **源码结构**:
- `app.js`:这是小程序的全局配置文件,包含了应用的初始化逻辑和全局函数定义,如页面注册、事件监听等。
- `project.config.json`:项目配置文件,用于设置项目的编译和打包选项,如自定义域名、分包策略等。
- `app.json`:小程序的整体配置文件,定义了页面栈、窗口表现、导航条样式等。
- `project.private.config.json`:私有项目配置文件,通常用于存储敏感信息,如微信小程序的AppID、密钥等。
- `sitemap.json`:站点地图文件,用于向微信服务器声明小程序的页面结构,以便于索引和搜索。
- `app.wxss`:全局样式表文件,用于设置小程序中所有页面的公共样式规则。
- `pages`:页面目录,包含了小程序的所有页面组件和对应的JS、WXML、WXSS文件。
- `res`:资源目录,存放图片、音频等静态资源。
- `images`:图片资源子目录,用于存放小程序中的各种图像文件。
- `audio`:音频资源子目录,存放木鱼敲击声等音频文件,是核心功能的关键部分。
3. **核心功能实现**:
- **音频播放**:在`audio`目录中的音频文件被调用,通过微信小程序的`wx.playBackgroundAudio` API实现背景音乐播放,模拟木鱼的声音。
- **用户交互**:用户可能需要点击屏幕来模拟敲击木鱼,这需要在页面的JS文件中编写点击事件处理函数,可能使用`wx.createSelectorQuery`来获取元素并触发音频播放。
- **定时器功能**:为了实现定时敲击,开发者可能在`app.js`或某个页面的JS文件中设置定时器,按照设定的时间间隔自动播放音频。
- **界面设计**:`app.wxss`和各页面的WXSS文件定义了界面样式,包括木鱼图像、按钮布局等,需符合用户体验和视觉美观原则。
4. **学习与实践**:
开发者可以从这个源码中学习到微信小程序的基本架构、生命周期管理、事件处理、音频播放控制以及如何结合CSS预处理器(如WXSS)进行样式定制。同时,也可以研究如何优化用户体验,例如添加自定义设置、分享功能、数据持久化等。
"电子木鱼静心小程序源码"是一个很好的学习案例,可以帮助开发者深入理解微信小程序开发流程,并提升在音频处理、用户交互设计等方面的技能。通过分析和修改源码,开发者可以创建出更多具有创新性和实用性的小程序应用。
dsfsdfdfd
- 粉丝: 0
- 资源: 1
最新资源
- 多微网优化模型matlab 采用粒子群算法分析两个微网的优化调度,得到蓄电池,发电机以及微网间功率传输,程序有参考资料
- 潮流计算程序matlab 牛拉法 采用matlab对9节点进行潮流计算,采用牛拉法,程序运行可靠
- 微网优化调度matlab 采用matlab+yalmip编制含分布式和储能的微网优化模型,程序采用15分钟为采集节点,利用cplex求解,程序考虑发电机的启停约束,程序运行可靠
- PMSM永磁同步电机仿真三电平SVPWM矢量控制matlab PMSM双环矢量控制传统三电平
- 路径规划人工势场法以及改进人工势场法matlab代码,包含了
- MobaXterm 是一款功能强大且实用的终端仿真器软件.docx
- 三菱FX3U底层源码,PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,支持脉冲输出与定位指令(包括PLSY PWM PLSR PLSV DRVI DRVA 等指令
- Oracle Database Gateways for Win32-11gR2
- python071基于RSA加密算法软件的研究设计
- 成熟量产低压无刷伺服驱动 方案 全套软硬件资料 源码 原理图 需要的直接拿 基于28035平台
- 欧姆龙PLC ST语言6轴伺服RS232C通讯板CP1W-C IF0 真实项目程序,ST语言写的FB块 PLC用是两台CP1H-X40DT-D配置4块RS232C通讯板CP1W-CIF01 触摸屏是N
- 欧姆龙CP1H与力士乐VFC-x610变频器通讯程序功能:原创程序,可直接用于现场程序 欧姆龙CP1H的CIF11通讯板,实现对力士乐VFC-x610变频器 设定频率,控制正反转,读取实际频率,读取
- 级联型电力电子变压器,高压直流MMC控制系统,级联数可选,调 制方式有移相载波,nlm及混合调制,拥有冒泡排序,递归排序等方法,可控制三相不平衡与环流
- 西门子PLC双轴定位算法电池焊接控制程序-S7-1200 +威纶通触摸屏 S7-1200PLC做的电池焊接程序,电池包里面有n*m行列个电池 程序设计灵活SCL语言+梯形图,采用了位置试教与定位路径规
- 变压器副边突然短路simulink仿真
- MATLAB代码:基于模型预测控制的楼宇负荷需求响应研究 关键词:楼宇负荷 空调 模型预测控制 需求响应 仿真平台:MATLAB+CVX平台 主要内容:代码主要做的是一个建筑楼宇的需求响应问题,首