【发布时间】:2020-08-23 21:17:40
【问题描述】:
如何在每帧刷新时间获得一个持久的滴答声。例如,在 Flame 游戏引擎中,update 方法大约每隔 1/60 秒被调用一次,并传递一个带有经过时间的值 dt。
我想实现一个风扇旋转的简单动画。我想根据用户输入来改变它的旋转速度。我的想法是,在每个滴答声中,我都会以固定值旋转扇形图像/容器。随着用户增加速度,我将增加乘数。使用 Flame 引擎或 Flare 之类的选项很少,但它们似乎有点矫枉过正。另外,我可以使用SingleTickerProviderMixin,但是很少有开销,比如在完成并转发动画时反转动画等等......
我认为会有一个简单的解决方案,它会在大约每 1/60 秒发生的每一帧刷新时间通知我,并将经过的时间传递给我 dt(大约 167 毫秒)左右)。
【问题讨论】:
-
AnimationController是你需要的,更多的是here -
如果我使用动画控制器,那么我必须反转和前进动画。我用这个做了一些项目。但是我在问是否有任何简单的解决方案,例如如果存在任何回调类型的东西,颤振会在大约每 1/60 秒左右刷新一次框架(更具体地说是构建方法),以便我可以将我的操作与之同步。
-
a
Ticker- 但如果你准备好使用AnimationController,我真的看不出有任何理由使用这种低级机制@ -
所以你建议有一个持续时间为 1 秒的动画控制器,每次我达到 1 秒我都需要反转它?一旦我尝试了 0 毫秒的反向持续时间和 1 秒的正向持续时间,但它给了我一个不可预知的结果。如果你能提供一个极简主义的例子,我可以得到一个持久的滴答声和回调,那就太好了。
-
ctrl.repeat();
标签: flutter dart flutter-animation flare flame