JavaFX: задержка вращаемой анимации между циклами
Я создал анимацию для ImageView на основе RotatedTranstion, используя следующий код:
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, анимация не является непрерывной i.e существует небольшая задержка (пауза) между циклами анимации.
Я попытался посмотреть на API, но не могу понять, что вызывает эту задержку и как я могу получить избавиться от него.
2 ответов
кажущаяся пауза между каждым циклом вызвана интерполятор, который по умолчанию использует Interpolator.EASE_BOTH
(таким образом, он замедляется в конце каждого цикла и ускоряется в начале).
чтобы удалить это, просто установите интерполятор в Interpolator.LINEAR
:
rotateTransition.setInterpolator(Interpolator.LINEAR);
время для ускорения и замедления на каждом Transition
цикл контролируется Interpolator
. Значение по умолчанию Interpolator
используется переход Interpolator.EASE_BOTH
.
вы хотите линейный интерполяция поэтому добавьте это в свой код:
rotateTransition.setInterpolator(Interpolator.LINEAR);