JavaFX:循环之间的旋转动画延迟
我使用以下代码创建了基于旋转变换的ImageView动画: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 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!