void play(){
setState(() {
tween = new VibesTween(
tween.evaluate(animation),
new Wave.random(size, random),
);
animation.forward(from: 0.0);
});
}
我需要调用这个为特定动画制作动画的播放函数。唯一的问题是每次单击按钮时它都会运行。我需要它每 1 秒调用一次状态并每秒重新渲染一次动画。我怎样才能做到这一点?
void play(){
setState(() {
tween = new VibesTween(
tween.evaluate(animation),
new Wave.random(size, random),
);
animation.forward(from: 0.0);
});
}
我需要调用这个为特定动画制作动画的播放函数。唯一的问题是每次单击按钮时它都会运行。我需要它每 1 秒调用一次状态并每秒重新渲染一次动画。我怎样才能做到这一点?
你真的不需要每秒调用setState
一次,你只需要一个重复的动画。并且AnimationController
有一种repeat
处理这种情况的方法。
要以最基本的形式设置它,您可以调用,
animationController.repeat();
但您也可以提供覆盖,如
animationController.repeat(min: 0.0, max: 1.0, period: Duration(seconds: 1));
您可以通过在方法play()
中将其作为回调函数参数传递来每隔一秒调用一次该Timer.Periodic(Duration, Callback)
方法。
const oneSec = const Duration(seconds: 1);
new Timer.periodic(oneSec, (Timer t) -> play());