通过wx.onAccelerometerChange可以监听手机的加速计,在传入的回调函数里获得x、y、z这3个方向上的移动加速度
    下面以一个摇一摇换图的案例,演示如何监听手机加速计,代码如示例4-19所示

    1. index.wxml
    2. <view>
    3. <text>摇一摇换图</text>
    4. <image src="{{list[index]}}"></image>
    5. </view>
    1. index.js
    2. Page({
    3. data: {
    4. list: [
    5. '/public/imgs/emo1.png',
    6. '/public/imgs/emo2.png',
    7. '/public/imgs/emo3.png'],
    8. index: 0
    9. },
    10. onLoad: function () {
    11. var that = this
    12. wx.onAccelerometerChange(function (e) {
    13. if (e.x > 1 && e.y > 1) {
    14. if (that.data.index == that.data.list.length - 1) {
    15. that.setData({
    16. index: 0
    17. })
    18. }
    19. else {
    20. that.setData({ index: that.data.index + 1 })
    21. }
    22. wx.showToast({
    23. title: '摇一摇成功',
    24. icon: 'success',
    25. duration: 1000
    26. })
    27. }
    28. })
    29. }
    30. })

    页面使用image组件显示数组里的图片
    onLoad函数里开启加速计监听
    判断x和y方向上的加速度是否都大于1,如果是就认为用户在摇手机
    把index+1,这样image组件显示的图片就会换一张
    如果index大于数组中最后一张图片的下标,则把index重置为0,否则就会发生数组下标越界