收藏
回答

wx.onAccelerometerChange 这个接口是不是有问题

 

var numX = 1 //x轴

    var numY = 1 // y轴

    var numZ = 0 // z轴

    var stsw = true // 开关,保证在一定的时间内只能是一次,摇成功

    var positivenum = 0 //正数 摇一摇总数

    //var audioCtx = wx.createAudioContext('myAudio') //音频,用于摇成功提示

    wx.onAccelerometerChange(function (res) {  //小程序api 加速度计

 


      if (numX < res.x && numY < res.y) {  //个人看法,一次正数算摇一次,还有更复杂的

        positivenum++

        setTimeout(() => { positivenum = 0 }, 2000) //计时两秒内没有摇到指定次数,重新计算

      }

      if (numZ < res.z && numY < res.y) { //可以上下摇,上面的是左右摇

        positivenum++

        setTimeout(() => { positivenum = 0 }, 2000) //计时两秒内没有摇到指定次数,重新计算

      }

      if (positivenum == 2 && stsw) { //是否摇了指定的次数,执行成功后的操作

        stsw = false

        // audioCtx.setSrc('http://pic.ibaotu.com/00/43/58/92J888piCmbi.mp3') //音频文件,第三方的可自行选择

        // audioCtx.play() //播发音频

        p++

        console.log('摇一摇成功' + p)

        that.startAnimation();


        wx.showToast({ title: '计算2222222222', icon: 'loading', duration: 2000 });

        setTimeout(() => {

          positivenum = 0 // 摇一摇总数,重新0开始,计算

          stsw = true

        }, 2000)

      }

    })

 

 

 

 

 

 

第二次在摇,会边连续触发两次,不管怎么写判读都没用。

求解

第一次p=1  第二次两个连续 p=2,p=3,第三次在摇   直接变成P6


回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容