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

JavaFX:循环之间的旋转动画延迟,java,animation,javafx,Java,Animation,Javafx,我使用以下代码创建了基于旋转变换的ImageView动画: ImageView icon = ImageCache.getImage("refresh.png"); RotateTransition rotateTransition = new RotateTransition(Duration.millis(2000), icon); rotateTransition.setByAngle(360.0); rotateTransition.setCycleCount(Timeline.INDE

我使用以下代码创建了基于旋转变换的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,但无法找出造成延迟的原因以及如何消除延迟。

每个周期之间的明显停顿是由默认情况下使用
插值器造成的。请同时使用
(因此它在每个周期结束时减速,在开始时加速)

要删除此项,只需将插值器设置为
插值器。LINEAR

rotateTransition.setInterpolator(Interpolator.LINEAR);

每个
转换
循环的加速和减速正时由
插值器
控制。Transition使用的默认
插值器
插值器。请同时使用这两个

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

rotateTransition.setInterpolator(Interpolator.LINEAR);

谢谢!事实上,我曾尝试将插值器更改为其他值,但从未尝试过使用interpolator.LINEAR,因为我只相信它是默认值。@Pablonavaus,相同。为什么一开始就不是线性的呢!我想
EASE\u将
cycleCount
设置为
1
,这是默认的
cycleCount
,这两个
看起来都更好。但我同意,
LINEAR
感觉更像是一个自然的默认值。非常感谢Ron!