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();
这导致以下动画:
行动中的轮换
你可能已经注意到动画gif,动画不连续,即动画周期之间有一个小的延迟(暂停)。
我试图看看API,但无法弄清楚导致这种延迟的原因以及我如何摆脱它。
每个周期之间的明显暂停是由内插器引起的, 内插器默认使用Interpolator.EASE_BOTH
(因此它在每个周期结束时减速并在开始时加速)。
要删除它,只需将插值器设置为Interpolator.LINEAR
:
rotateTransition.setInterpolator(Interpolator.LINEAR);
每个Transition
周期的加速和减速时间由内Interpolator
器控制。 Transition使用的默认Interpolator
是Interpolator.EASE_BOTH
。
您需要线性插值,因此请将其添加到您的代码中:
rotateTransition.setInterpolator(Interpolator.LINEAR);