HarmonyOS 鸿蒙Next系统动画如何通过按钮手动暂停与继续

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next系统动画如何通过按钮手动暂停与继续

2 回复

解决方案已经找到

//属性创建  
[@State](/user/State) play: boolean = false;
[@State](/user/State) scaleValue: number = 0.5
[@State](/user/State) rotateValue: number = 360
animator: AnimatorResult = Animator.create({
    duration: 3000,
    easing: "fast-out-slow-in",
    iterations: -1,
    delay: 0,
    fill: 'none',
    direction: 'normal',
    begin: 0,
    end: 1
})
//监听事件
this.animator.onFrame = (value: number) => {
      this.scaleValue = 0.5 * (1 + value)
      this.rotateValue = 360 * value
}
//按钮事件
Button(this.play ? '暂停' : '播放').onClick(() => {
          this.play = !this.play
          if (this.play) {
            this.animator.play()
          } else {
            this.animator.pause()
          }
})
//刷新 UI
IconItem({ image: item.image, text: item.text })
              .scale({ x: this.scaleValue, y: this.scaleValue })
              .rotate({ z: 1, angle: this.rotateValue })
 

HarmonyOS鸿蒙Next系统动画通过按钮手动暂停与继续,可以通过设置动画控制器的播放和暂停状态来实现。你需要定义一个布尔变量来控制播放状态,并在按钮点击事件中切换此变量的值。当变量为true时,调用动画控制器的play()方法继续动画;为false时,调用pause()方法暂停动画。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部