繁体   English   中英

JavaFX:循环之间的旋转动画延迟

[英]JavaFX : Rotated animation delay between cycles

我使用以下代码为基于RotatedTranstion的ImageView创建了动画:

ImageView icon = ImageCache.getImage("refresh.png");
RotateTransition rotateTransition = new RotateTransition(Duration.millis(2000), icon);
rotateTransition.setByAngle(360.0);
rotateTransition.setCycleCount(Timeline.INDEFINITE);

rotateTransition.play();

这将产生以下动画:

轮换行动

就像您在动画gif中注意到的那样,动画不是连续的,即动画周期之间的延迟很小(暂停)。

我试图看一下API,但无法弄清楚是什么原因造成了这种延迟以及如何摆脱这种延迟。

每个周期之间的明显停顿是由interpolator引起的,默认情况下使用Interpolator.EASE_BOTH (因此,它在每个周期的末尾减速并在开始时加速)。

要删除它,只需将插值器设置为Interpolator.LINEAR

rotateTransition.setInterpolator(Interpolator.LINEAR);

每个Transition周期的加速和减速时间均由Interpolator器控制。 Transition使用的默认Interpolator器是Interpolator.EASE_BOTH

您需要线性插值,因此将其添加到代码中:

rotateTransition.setInterpolator(Interpolator.LINEAR);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM