通过wx.onAccelerometerChange
可以监听手机的加速计,在传入的回调函数里获得x、y、z这3个方向上的移动加速度
下面以一个摇一摇换图的案例,演示如何监听手机加速计,代码如示例4-19所示
index.wxml
<view>
<text>摇一摇换图</text>
<image src="{{list[index]}}"></image>
</view>
index.js
Page({
data: {
list: [
'/public/imgs/emo1.png',
'/public/imgs/emo2.png',
'/public/imgs/emo3.png'],
index: 0
},
onLoad: function () {
var that = this
wx.onAccelerometerChange(function (e) {
if (e.x > 1 && e.y > 1) {
if (that.data.index == that.data.list.length - 1) {
that.setData({
index: 0
})
}
else {
that.setData({ index: that.data.index + 1 })
}
wx.showToast({
title: '摇一摇成功',
icon: 'success',
duration: 1000
})
}
})
}
})
页面使用image组件显示数组里的图片
onLoad函数里开启加速计监听
判断x和y方向上的加速度是否都大于1,如果是就认为用户在摇手机
把index+1,这样image组件显示的图片就会换一张
如果index大于数组中最后一张图片的下标,则把index重置为0,否则就会发生数组下标越界