我怎样才能 运行 这个 setState 函数说每 1 秒
How can I run this setState function for say every 1 sec
void play(){
setState(() {
tween = new VibesTween(
tween.evaluate(animation),
new Wave.random(size, random),
);
animation.forward(from: 0.0);
});
}
我需要调用这个播放特定动画的函数。唯一的问题是每次单击按钮时它都会运行。我需要它每 1 秒调用一次状态并每秒重新渲染一次动画。我怎样才能做到这一点?
你真的不需要每秒调用 setState
,你只需要一个重复的动画。 AnimationController
has a 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());
void play(){
setState(() {
tween = new VibesTween(
tween.evaluate(animation),
new Wave.random(size, random),
);
animation.forward(from: 0.0);
});
}
我需要调用这个播放特定动画的函数。唯一的问题是每次单击按钮时它都会运行。我需要它每 1 秒调用一次状态并每秒重新渲染一次动画。我怎样才能做到这一点?
你真的不需要每秒调用 setState
,你只需要一个重复的动画。 AnimationController
has a 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());