AnimationController:动画控制器

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

Animation 动画 .. 控制 Flutter 里的 Animation,我们可以使用 AnimationController .. 先去创建一个 AnimationController .. 在这个 AnimationDemoHome 的 State 这个类里面 .. 添加一个 AnimationController .. 名字可以是 animationDemoController ..

然后在这个类里面添加一个 initState .. 在这个方法里面可以设置一下 animationDemoController 的值 .. 让它等于一个 AnimationController .. 我们得设置一下它控制的动画的一个持续的时长 .. 添加一个 duration 属性 .. 值可以是 Duration .. milliseconds .. 1000 .. 意思就是时长是 1000 毫秒,也就是一秒钟 ..

vsync

这里我们还得给 AnimationController 提供一个 vsync 属性 .. 主要作用是防止屏幕外的动画消耗不必要的资源 .. 这个 vsync 的值应该是一个 TickerProvider ... Ticker 会在每一帧都做出一个反应,比如通知一下动画对象计算出当前帧的值 ..

Frame .. 就是帧。一帧可以理解成一个画面,一般的手机硬件在一秒内可以生成 60 帧,就是在一秒钟可以连续显示 60 个画面 .. 如果连续显示这些画面我们看到的就是动画 ..

在这个 State 类里面,可以让它用一下 TickerProviderStateMixin .. 这样我们就可以把这个 vsync 的值设置成 this ...

addListener

下面可以监听一下这个控制器控制的动画 .. 用一下 animationDemoController .. addListener 这个方法,添加一个监听器 .. 设置一下要做的事情 .. 我们可以在控制台上输出每一帧上的动画的值 .. 这个控制器控制的动画的值是在它的 value 这个属性里面 ..

插放

开始播放动画可以用一下 animationController 上的 forward 这个方法 ..

disponse

不再需要的控制器可以扔掉 ... 在类里面添加一个 dispose .. 然后在这个方法里执行一下 animationDemoController 上的 dispose ..

打开调试控制台 ..

运行一下 hot restart ...

你会发现控制台上会输出很多次数字,这些数字默认是在 0.0 到 1.0 之间 .. 每输出一个数字就表示设备显示了一帧 ..

输出这些数字的次数,取决于我们设置的动画的持续时间 .. 还有设备每秒显示的帧数 ... 这里我们设置的动画的持续时间是 1000 毫秒,也就是 1 秒钟 .. 如果设备每秒显示 60 帧的话,这里应该显示 60 次计算出来的这些数字..

AnimationController:动画控制器《 Flutter 移动应用:动画 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点