weex的animation动画怎么设置连续的

weex的animation动画怎么设置连续的
官方文档介绍太少了

阅读 8.7k
5 个回答
新手上路,请多包涵

是指循环的话,使用setInterval()实现就行。

新手上路,请多包涵

我也碰到这个问题,如果写在setInterval()中,动画只会播放一次,定时器还在走,函数不断的被调用。

我在uniapp中解决的方法是在你需要变化的数值后加上一个极小的随机数 即 Math.random()*0.01;
而且在变化的其中一个因素中加上随机数即可;
有遇到的问题的可以参考一下

        handleStartAnimation(){
            let animation =wx.createAnimation({
                duration:'600',
                timingFunction:"linear",
            }),
            go=true,
            big=1.2,
            samll=1;
            let timer=setInterval(()=>{
                animation.scale(1.15+Math.random()*0.01).step();
                animation.scale(1).step();
                this.animationData=animation.export();
            },1210)
        }

在动画完成的回调函数重置初始位置,再执行动画不就可以了。

 startAnim() {
                var that = this
                var love = this.$refs.love;
                animation.transition(love, {
                    styles: {
                        transform: `rotate(${that.mAngel}deg)`,
                        transformOrigin: 'center center'
                    },
                    duration: 5000,
                    timingFunction: 'liner',
                    delay: 0
                }, function () {
                    that.mAngel += 360
                    that.startAnim()
                })
            }