Flare / Flutter:如何在开始动画之前重置动画的进度?

问题描述 投票:1回答:1

我有一个Flare文件,其中包含3个动画,所有动画都在同一画板上。我知道在动画之间切换时,Flare会默认将动画混合在一起,并且播放一个动画不会将相关节点的值重置为编辑器中第0帧的值。这是我想要实现的行为:播放新动画时,我希望以前的动画完全停止(根本不混合它们),并且让传入的动画从头开始就全部播放默认值

用例是这样:

  1. 播放例如形状的不透明度降至零的动画
  2. 播放使用上面形状的其他动画,但在Flare编辑器中,动画开始时其不透明度为1

所需结果:新动画将重置形状的不透明度,然后像正常一样开始播放并播放

实际结果:由于上一个动画更改了形状的不透明度,因此新动画将使用其原样的形状,而不是在编辑器中创建的形状

对于我在GitHub上解释的问题,您可以查看此问题的线程结尾(有gif图像:https://github.com/2d-inc/Flare-Flutter/issues/14

在以上主题中,Luigi Rosso提到“重新实例化”画板。有谁知道他的意思是什么以及怎么做?我尝试了几种方法来执行此操作,例如在类make-instanceFlutterActorArtboard和其他一些类上找到的ActorNode方法(make-instance方法有一些变体,但它们的名称都相似,并返回一个新的画板。但是,到目前为止,我并没有在FlareController实现中替换我的画板的当前实例。

我还尝试过手动遍历画板的所有ActorNode,首先保存它们的初始值,然后每次播放新动画时将保存的值复制到画板上,但这似乎使事情变得很糟非常差(动画无法识别,并且此后无法正确播放,因此我必须做错了什么。或者我正在重置错误的值)。

感谢您的任何帮助,谢谢!

我有一个Flare文件,其中包含3个动画,所有动画都在同一画板上。我了解到,在动画之间切换时,默认情况下Flare会将动画混合在一起,并且...

flutter flare
1个回答
0
投票

为了在形状上播放不同的动画并重置其不透明度,您可以在运行时使用以下命令访问节点的不透明度:

© www.soinside.com 2019 - 2024. All rights reserved.