我怎样才能 运行 这个 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());