我使用以下代码为基于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();

这将产生以下动画:

Rotation in Action

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

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

最佳答案

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

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

rotateTransition.setInterpolator(Interpolator.LINEAR);

关于java - JavaFX : Rotated animation delay between cycles,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36084987/

10-12 03:01