HarmonyOS 如何监控动画的结束

private
startAnimation() {
  const POSITION_ZERO = 0
  const PLAYBACK_COUNT = 2 //播放2次
  const ANIMATION_TIME = 100
  const TRANSLATE_OFFSET_X = 5

  this.mUnionVerifyBean.translateX = POSITION_ZERO;
  // 第一段动画时长为100ms,translateX属性从0到5
  // 第二段动画时长为100ms,translateX属性从5到0
  this.getUIContext().keyframeAnimateTo({ iterations: PLAYBACK_COUNT }, [
    {
      duration: ANIMATION_TIME,
      event: () => {
        this.mUnionVerifyBean.translateX = TRANSLATE_OFFSET_X
      }
    },
    {
      duration: ANIMATION_TIME,
      event: () => {
        this.mUnionVerifyBean.translateX = POSITION_ZERO;
      }
    }
  ]);
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

可通过onFinish来监听动画播放结束,示例如下:

// xxx.ets
import { UIContext } from '@kit.ArkUI';

@Entry
@Component
struct KeyframeDemo {
  @State myScale: number = 1.0;
  uiContext: UIContext | undefined = undefined;

  aboutToAppear() {
    this.uiContext = this.getUIContext?.();
  }

  build() {
    Column() {
      Circle()
        .width(100)
        .height(100)
        .fill("#46B1E3")
        .margin(100)
        .scale({ x: this.myScale, y: this.myScale })
        .onClick(() => {
          if (!this.uiContext) {
            console.info("no uiContext, keyframe failed");
            return;
          }
          this.myScale = 1;
          // 设置关键帧动画整体播放3次
          this.uiContext.keyframeAnimateTo({
            iterations: 3, onFinish: () => {
              console.info('play end')
            }
          }, [
            {
              // 第一段关键帧动画时长为800ms,scale属性做从1到1.5的动画
              duration: 800,
              event: () => {
                this.myScale = 1.5;
              }
            },
            {
              // 第二段关键帧动画时长为500ms,scale属性做从1.5到1的动画
              duration: 500,
              event: () => {
                this.myScale = 1;
              }
            }
          ]);
        })
    }.width('100%').margin({ top: 5 })
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS中animateTo如何结束动画
859浏览 • 2回复 待解决
HarmonyOS 动画结束回调监听不到
76浏览 • 1回复 待解决
HarmonyOS NavPathStack长度如何监控
417浏览 • 1回复 待解决
如何设置PolarDB监控和报警?
2619浏览 • 1回复 待解决
如何监听Slider滑动结束
454浏览 • 1回复 待解决
HarmonyOS 结束App保活时间
46浏览 • 1回复 待解决
HarmonyOS APP性能监控
42浏览 • 1回复 待解决
如何进行系统崩溃监控
746浏览 • 1回复 待解决
PolarDB监控功能是怎样
3424浏览 • 1回复 待解决
HarmonyOS 如何对tab页生命周期监控
29浏览 • 1回复 待解决
会话结束时间怎样记录?
3230浏览 • 1回复 待解决
HarmonyOS 结束应用程序进程
71浏览 • 1回复 待解决
HarmonyOS 屏幕点击事件监控代码
439浏览 • 1回复 待解决
有哪些好用MySQL监控软件?
2440浏览 • 1回复 待解决