Как сделать анимацию дискретного цветного отражения с помощью JavaFX? - PullRequest
0 голосов
/ 26 августа 2009

Только что начал с JavaFX сегодня и не могу понять, как сделать дискретное изменение цвета на объекте. Я могу установить временную шкалу с двумя ключевыми кадрами и установить для нее значение цвета, которое объект связывает с переменной заполнения ... но я получаю интерполированные цвета, когда мне нужен дискретный триггер.

Ответы [ 2 ]

1 голос
/ 26 августа 2009

Или вы можете использовать интерполятор DISCRETE для значения ключа KeyFrame для fillColor.

Timeline {
    repeatCount: Timeline.INDEFINITE
    keyFrames: [
        at(0s) { fillColor => Color.BLUE tween Interpolator.DISCRETE; }
        at(1s) { fillColor => Color.RED tween Interpolator.DISCRETE; }
    ]
}
0 голосов
/ 26 августа 2009

Это может быть больше, чем вы ищете, но это не повторяется бесконечно - может быть, ошибка? Кроме того, я подозреваю, что есть более аккуратные способы сделать это.

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.paint.Color;
import javafx.animation.transition.PauseTransition;
import javafx.animation.transition.SequentialTransition;

import javafx.animation.Timeline;

var fillColor: Color;

Stage {
    title : "MyApp"
    scene: Scene {
        width: 400
        height: 200
        content: [
                Rectangle {
                x: 10, y: 10
                width: 140, height: 90
                fill: bind fillColor
            }
            ]
    }
}

var seqTransition = SequentialTransition {
    repeatCount: Timeline.INDEFINITE
      content: [
        PauseTransition {
            duration: 1s
            action: function():Void {
                fillColor = Color.BLUE;
            }
        },
        PauseTransition {
            duration: 1s
            action: function():Void {
                fillColor = Color.RED;
            }
        }
      ]
    }
    seqTransition.play();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...