收藏
回答

请教一下如何让动画循环播放

问题模块
API和组件

var animation = wx.createAnimation({

      duration: 20000,

      timingFunction: 'linear',

    })

  audioPlay: function (e) {

  //  在标签页添加 data-*** 可以通过e.currentTarget.dataset.*** 取值

        this.audioCtx.play()

        this.setData({

          courseImg: '../../images/pause.png'

      })

        this.setData({

          temp1: true

        })

        this.setData({

          temp2: false

        })

        var that = this

        setInterval(function(){

          that.animation = animation

          animation.rotate(360).step()

          that.setData({

            animationData: animation.export()

          })

        },1000)

  },

这是 代码,但是动画只会播放一次,不知道如何去循环播放,请教一下大神

最后一次编辑于  2017-05-11  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

11 个回答

  • 炒饭()
    炒饭()
    2017-05-11

    再套个setInterval啊

    2017-05-11
    赞同
    回复
  • 纯邪无洁
    纯邪无洁
    2017-05-12

    有道理 ,我怎么没想到,我去试下

    2017-05-12
    赞同
    回复
  • 纯邪无洁
    纯邪无洁
    2017-05-12

    套了一个,不知道为什么没效果,

      audioPlay: function (e) {

      //  在标签页添加 data-*** 可以通过e.currentTarget.dataset.*** 取值

            this.audioCtx.play()

            this.setData({

              courseImg: '../../images/pause.png'

          })

            this.setData({

              temp1: true

            })

            this.setData({

              temp2: false

            })


            var that = this

            setInterval(function(){

              that.playCD()

            },1000)


      },playCD:function(){

          var that = this

          console.info('开始调用了')

          setInterval(function () {

            that.animation = animation

            animation.rotate(360).step()

            that.setData({

              animationData: animation.export()

            })

          }, 1000)

      },


    2017-05-12
    赞同
    回复
  • 炒饭()
    炒饭()
    2017-05-12

    试试这样的 

    audioPlay: function (e) {

      //  在标签页添加 data-*** 可以通过e.currentTarget.dataset.*** 取值

            this.audioCtx.play()

            this.setData({

              courseImg: '../../images/pause.png',   temp1: true, temp2: false

          })

        

            var that = this

            setInterval(function(){

              that.playCD()

            },2000)


      },

    playCD:function(){

          var that = this;

          console.info('开始调用了')

          var timer=setInterval(function () {

            that.animation = animation

            animation.rotate(360).step()

            that.setData({

              animationData: animation.export()

            })

          }, 1000)

        setTimeout(function(){

          clearInterval(timer);

        },1000)

      },


    2017-05-12
    赞同
    回复
  • 纯邪无洁
    纯邪无洁
    2017-05-12

    还是只播放了一次,看API写的   animationData: animation.export()

    export 方法每次调用后会清掉之前的动画操作


    2017-05-12
    赞同
    回复
  • 炒饭()
    炒饭()
    2017-05-12

    那你这个setInterval应该把整个动画都要把括进去了,包括创建动画,而不仅仅只是执行动画这一块了 楼主你再试试

    2017-05-12
    赞同
    回复
  • 纯邪无洁
    纯邪无洁
    2017-05-12

          }, loopValue)

      },playCD:function(){

        var animation = wx.createAnimation({

          duration: 20000,

          timingFunction: 'linear',

        })

          var that = this

          console.info('开始调用了')

          var timer  =  setInterval(function () {

            this.animation = animation

            animation.rotate(360).step()

            that.setData({

              animationData: animation.export()

            })

          }, 1000)

          setTimeout(function (){

            clearInterval(timer)

          },1000)

      },


    已经放到了playCD里,还是不行

    2017-05-12
    赞同
    回复
  • 炒饭()
    炒饭()
    2017-05-12

    这就涉及到我的知识盲区了 楼主你再多试试吧

    2017-05-12
    赞同
    回复
  • 纯邪无洁
    纯邪无洁
    2017-05-12

    先放着干别的,到时候弄好了再来回复你,谢谢了

    2017-05-12
    赞同
    回复
  • 左耳
    左耳
    2017-09-25

    楼主最现在解决了吗,请教一下

    2017-09-25
    赞同
    回复