AnimationController组件的用法


我们在上一章回中介绍了转场动画相关的内容,本章回中将介绍如何实现动画.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1 概念介绍

提到动画相信大家都不陌生,在程序中使用动画可以增加程序酷炫的效果,因此我们有必要掌握动画相关的知识。其实在我们在上一章回中介绍转场动画时已经使用过动画,
只是当时使用的是系统提供的动画,本章回中将详细介绍如何实现动画。

2 实现方法

  1. 创建AnimationController类型对象,该类的构造方法中有一个必选参数:vsync表示屏幕刷新时是否通知当前界面,传递了当前对象(this)给它;
  2. 自定义Widget类,在类中混入了SingleTickerProviderStateMixin类,这样才能把当前对象传递给vsync参数;
  3. 创建CurvedAnimation类型对象,该类主要用来控制动画的插值,比如动画以线性方式播放;
  4. 创建Tween类型对象,该类主要用来控制动画的开始值和结束值;
  5. 在Tween对象中关联CurvedAnimation类型对象,这样就可以控制动画的播放效果;
  6. 创建动画widget类,主要用来更新动画,本质上是AnimatedWidget的子类,通过类的构造方法加入前面步骤中的动画参数;
  7. 创建动画Builder,主要用来更新动画,和自定义动画widget类的功能相同,通过类参数加入前面步骤中的动画参数;
  8. 通过AnimationController类型对象,释放动画相关的资源;
    上面的步骤中包含两个6,不是写错了,是它们的功能相同,实现实现方式不同。我们在实际项目中选择其中一种就可以,常用的是动画Builder;步骤6中可以控制颜色,
    大小,位置,角度。把它放到组件的color,size,transform等属性中就可以实现缩放,平移,旋转,渐变动画。上面的介绍的步骤比较抽象,不容易理解,而且步骤
    中还包含了很多类,接下来我们通过示例代码来演示。

3 示例代码

class _ExAnimationState extends State<ExAnimation> with SingleTickerProviderStateMixin{
   
  late final AnimationController _animationController;
  late final CurvedAnimation _animationCurve;
  late final Animation _animationTween;

  
  void initState() {
   
    // TODO: implement initState
    super.
Unity的Animation2D系统是一个非常强大的2D动画工具,它能够让开发者很容易地创建出复杂的2D动画效果。其中,Animation Controller是一个重要的组件,用于控制动画的播放。 下面是Animation Controller的详细使用方式: 1. 创建Animation Controller 在Unity的资源管理器中,右键点击空白处,选择Create->Animator Controller,即可创建一个新的Animation Controller。 2. 添加动画Clip 在Animation Controller中,可以添加多个动画Clip,每个Clip对应一个动画状态。在资源管理器中选择需要添加的动画Clip,拖拽到Animation Controller中的空白处即可。 3. 创建动画状态 在Animator窗口中,选中Animation Controller后,点击Create State按钮,可以创建一个新的动画状态。将动画Clip拖拽到新创建的状态上,即可将状态与动画Clip关联起来。 4. 创建过渡条件 在Animator窗口中,选中需要添加过渡条件的状态后,右侧会显示一个过渡条件列表。可以通过添加多个过渡条件,来控制动画状态之间的切换。 5. 添加动画参数 在Animator窗口中,可以添加多个动画参数。动画参数可以是bool、float、int等类型。在过渡条件中,可以使用这些参数来控制状态之间的切换。 6. 控制动画播放 在代码中,可以通过Animator组件来控制动画的播放。首先获取Animator组件,然后调用SetTrigger、SetBool、SetFloat等方法,来触发不同的动画状态。 以上就是Animation Controller的详细使用方式。通过Animation Controller,可以实现非常复杂的2D动画效果,并且非常方便地控制动画播放。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值