收藏
回答

animation的重复创建

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 animation 客户端 6.6.7 2.0.0

现在我们定义animation,只能先通过 wxml定义 <view class="animation1" animation="{{animation1}}" />

然后在js中,使用this.animation1 = wx.createAnimation({ }) 创建,最后在需要用到的时候

this.animation1.scale(10).step()

this.setData({ animation1: this.animation1.export() })


现在我可能需要10多个不同的动画,都要这样创建和调用。。。感觉太重复了。。

尝试自定义函数。。但是不知道怎么传入animation的名称。。

写了一个这样的,错误的函数

myCreateAnimation:function(animationName){

    this.animationName= wx.createAnimation({ //参数 })

}

实在不知道怎么传入animation。。。




最后一次编辑于  2018-09-30  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 卢霄霄
    卢霄霄
    2018-10-01

    this[animationName]

    this.setData({     [animationName]:this.[animationName]

    })

    2018-10-01
    赞同
    回复 3
    • Kasug
      Kasug
      2018-10-09

      非常感谢,成功运行!

      2018-10-09
      回复
    • 卢霄霄
      卢霄霄
      2018-10-09回复Kasug

      不客气。。你悟性高。。我突然发现写错了点。。你都理解了

      2018-10-09
      回复
    • Kasug
      Kasug
      2018-10-09回复卢霄霄

      过奖了。。主要是学习了this[]的用法。。非常感谢。

      顺便贴上代码,方便学习,注意传入的animationName要是string类型的

      playAnimation: function (animationName,duration,delay,xoffset){
        this[animationName] = wx.createAnimation({
          duration: [duration],
          delay: [delay]
        })
        this[animationName].translateX(xoffset).step()
       
        this.setData({ [animationName]: this[animationName].export() })
      }


      2018-10-09
      回复
  • 韬々
    韬々
    2018-09-30

    没明白你想表达的问题是什么?Animation这个接口确实是不太友好,这里我们之后会讨论下如何优化复杂场景下的动画调用。

    2018-09-30
    赞同
    回复