一. 计时器
要使用计时器先要导入dart:async包,
整个计时器体验和JS基本一致
1. Duration 间隔
这里先介绍一个dart自带的类: Duration
![](https://i-blog.csdnimg.cn/blog_migrate/c4e64d9ea9599479346147ff0b0a3be9.png)
2. Timer 计时器
再介绍一个dart自带的非常好用的类Timer,
Timer(间隔, 回调)
import 'dart:async';
final timeout = Duration(seconds: 3);
Timer(timeout, () {
print("时间到,我被执行了!");
});
二. 动画
flutter动画分为两大类:
- 补间动画(
Tween
) - 基于物理的动画
在为widget添加动画之前,先让我们认识下动画的几个朋友:
-
Animation
:是Flutter动画库中的一个核心类,它生成指导动画的值; -
CurvedAnimation
:Animation
的一个子类,将过程抽象为一个非线性曲线; -
AnimationController
:Animation
的一个子类,用来管理Animation
; -
Tween
:在正在执行动画的对象所使用的数据范围之间生成值。例如,Tween
可生成从红到蓝之间的色值,或者从0到255;
1. Animation //动画过程
在Flutter中,Animation
对象本身和UI渲染没有任何关系。Animation
是一个抽象类,它拥有其当前值和状态(完成或停止)。
-
Animation
还可以生成除double之外的其他类型值,如:Animation<Color>()
或Animation<Size>()