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

Pab*_*ais 6 java animation javafx

我使用以下代码基于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();
Run Code Online (Sandbox Code Playgroud)

这导致以下动画:

行动中的轮换

你可能已经注意到动画gif,动画不连续,即动画周期之间有一个小的延迟(暂停).

我试图看看API,但无法弄清楚导致这种延迟的原因以及我如何摆脱它.

Jam*_*s_D 6

每个周期之间的明显暂停是由内插器引起的,默认情况下使用内插器Interpolator.EASE_BOTH(因此它在每个周期结束时减速并在开始时加速).

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

rotateTransition.setInterpolator(Interpolator.LINEAR);
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢 !事实上,我尝试将插值器更改为其他值,但从未尝试使用Interpolator.LINEAR,因为我认为它是默认值. (2认同)