【OpenHarmony】 鸿蒙 UI动画开发之d3.js easing Functions

52 阅读3分钟

简介

该库为UI动画组件 easing 缓动函数是用来描述数值的变化速率,这些数值可以是动画对象的宽高,透明度,旋转,缩放等属性值,它们的变化率可以用函数曲线来表示,制作出更加符合直觉的UI动效,使动画看上去更加真实。已经实现的函数如下所示:

下载安装

ohpm install d3-ease

使用说明

import * as Easing from 'd3-ease';

使用示例

第一步:创建自己需要的动画

import Animator, { AnimatorResult } from '@ohos.animator';

backAnimator: AnimatorResult = Animator.create({
  duration: 1000,
  easing: 'linear',
  direction: 'normal',
  iterations: 1,
  delay: 0,
  fill: 'none',
  begin: 0,
  end: 1
});

第二步,实现onframe方法,并调用函数方法进行计算(小球动画示例)

  ballBeginX = 30;
  ballEndX = 320;
  @State ballAnimateValue: number = 30;

  this.animator.onframe = (normalizedTime) => {
      const distance = this.ballEndX - this.ballBeginX;
      this.ballAnimateValue = this.ballBeginX + Easing.Linear(normalizedTime) * distance;
  }

  build() {
        Column() {
              Stack({alignContent: Alignment.TopStart}) {
                  // 小球 动画作用在 margin left 属性
                  Column(){}.width(28).height(28)
                      .backgroundColor('#ff0991ec')
                      .borderRadius(14)
                      .margin({left: this.ballAnimateValue, top: 14});
              }
        }
  }

DD一下:欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点。

`欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

接口说明

Easing

接口名参数类型返回值类型说明
easeBackInnumbernumber偏移动画估值
easeBackOutnumbernumber偏移动画估值
easeBackInOutnumbernumber偏移动画估值
easeBounceInnumbernumber弹簧动画估值
easeBounceOutnumbernumber弹簧动画估值
easeBounceInOutnumbernumber弹簧动画估值
easeCircleInnumbernumber圆弧的动画估值
easeCircleOutnumbernumber圆弧的动画估值
easeCircleInOutnumbernumber圆弧的动画估值
easeCubicInnumbernumber三次曲线动画估值
easeCubicOutnumbernumber三次曲线动画估值
easeCubicInOutnumbernumber三次曲线动画估值
easeElasticInnumbernumber心电图动画估值
easeElasticOutnumbernumber心电图动画估值
easeElasticInOutnumbernumber心电图动画估值
easeExpInnumbernumber外露函数动画估值
easeExpOutnumbernumber外露函数动画估值
easeExpInOutnumbernumber外露函数动画估值
easeQuadInnumbernumber四次曲线动画估值
easeQuadOutnumbernumber四次曲线动画估值
easeQuadInOutnumbernumber四次曲线动画估值
easePolyInnumbernumber五次曲线动画估值
easePolyOutnumbernumber五次曲线动画估值
easePolyInOutnumbernumber五次曲线动画估值
easeSinInnumbernumber正弦函数动画估值
easeSinOutnumbernumber正弦函数动画估值
easeSinInOutnumbernumber正弦函数动画估值
easeLinearnumbernumber直线动画估值

约束与限制

在下述版本验证通过:

  • DevEco Studio: NEXT Release(5.0.3.900), SDK: API12 (5.0.0.71)
  • DevEco Studio: NEXT Developer Beta3(5.0.3.524), SDK: API12 (5.0.0.25)
  • DevEco Studio 版本: 4.1 Canary(4.1.3.500), OpenHarmony SDK: API11 (4.1.3.1)

目录结构

|---- animationFunction  
|     |---- entry  # 示例代码文件夹
|     |---- README_zh.MD  # 安装使用方法