是否可以平滑地改变JavaFX中的效果? 我尝试了很多选择,但没有任何作用。
例如 - Java:
12
例如 - Kotlin:
void effectChange(Node node) {
// Node Effect = ColorAdjust (0.0, 0.0, 0.0, 0.0)
KeyValue keyValue = new KeyValue(node.effectProperty(), new ColorAdjust(-0.8, 0.0, 0.0, 0.0));
KeyFrame keyFrame = new KeyFrame(Duration.seconds(2.0), keyValue);
Timeline timeline = new Timeline(keyFrame);
timeline.play();
}
答案 0 :(得分:1)
你正在计时错误的财产。您应该更改效果的属性,而不是更改效果。看一下下一个例子:
Button btn = new Button("Say 'Hello World'");
ColorAdjust effect = new ColorAdjust(0.0, 0.0, 0.0, 0.0);
btn.setEffect(effect);
btn.setOnAction((ActionEvent event) -> {
KeyValue keyValue = new KeyValue(effect.hueProperty(), -0.8);
KeyFrame keyFrame = new KeyFrame(Duration.seconds(2.0), keyValue);
Timeline timeline = new Timeline(keyFrame);
timeline.play();
});