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