Day 18动画原理

前言
我们平常手机拍摄的视讯,看起来虽然是一个连续播放的视讯,但其实他是由一连串的图片组成的。动画的核心是Animation类别,而Animation是由AnimationController管理,并经由Listeners和StatusListeners管理一切的变化。

Animation
Animation是Flutter动画中的使用最多的类型,它知道动画目前的状态(开始、停止、移动、前进、方向、播放、回放),但不知道在萤幕上画的是什麽。Animation在一段时间内会依次产生一个区间值,它的输出值可以是线性或非线性的,也可以是一个步进函数或其他曲线函数。

Animatable
用於控制动画类型,透过呼叫animate方法,回传一个Animation。例如在颜色动画中,我们最关心色值的变化,这时就可以透过Animatable控制色值的变化。

AnimationController
AnimationController是Animation的子类,为一个动画控制器,控制动画的播放状态,它负责在指定的时间内以线性的方式产生区间为(0.0,1.0)的数字,此数字和屏幕刷新有关。如要启动动画,则需要透过AnimationController的forward( )方法。

Tween
Tween是补间动画,只需要设定开始和结束的边界值,上述提到AnimationController设定的值范围是(0.0,1.0),但当我们需要不同的范围或类别时,就需要使用到Tween。

Curve
Flutter透过曲线来描述动画,整个动画可以是匀速、加速、先加速後减速等等。

今天介绍一些基本的动画类型,明天将会介绍动画的封装与简化,敬请期待。

参考资料
横跨Android及Apple的神话:用Dart语言神启Flutter大业5.1节
https://codertw.com/%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80/747535/
https://iter01.com/611578.html


<<:  [FGL] FGLSQLDEBUG与FGLGUIDEBUG,除错的好帮手

>>:  Angular 深入浅出三十天:表单与测试 Day15 - 整合测试实作 - 被保人 by Reactive Forms

Day17 - Ruby 的阵列处理入门

线上 Ruby 编辑器:https://runrb.io/ Ruby Array 文件:https...

近似最短路径 (7)

11.6a 把树合并起来 让我们简单描述一下把树合并起来的过程,补上昨天 Peleg’s Dista...

故事与团队管理

我认为,一个管理者的工作,就是「长期能透过一群人达成目标」 — that's the what. 而...

iOS APP 开发 OC 第十天,block

tags: OC 30 day 有哪些是数据类型? int,double,float,char .....

[Day 10]从零开始学习 JS 的连续-30 Days---阵列与物件混合应用

阵列与物件混合应用 例子:有两家宠物店,一间叫miee宠物店,店里有10只猫与5只狗,可以宠物寄宿。...