Я пытался анимировать Node
DropShadow
, но, похоже, он влияет на другие узлы (и / или экземпляры того же узла), которые имеют эффект теней в графе сцены.В настоящее время я использую этот подход для анимации:
DropShadow shadow = (DropShadow) node.getEffect();
Timeline timeline = new Timeline();
timeline.getKeyFrames().setAll(
new KeyFrame(Duration.ZERO,
new KeyValue(shadow.radiusProperty(), shadow.getRadius()),
new KeyValue(shadow.spreadProperty(), shadow.getSpread()),
new KeyValue(shadow.offsetXProperty(), shadow.getOffsetX()),
new KeyValue(shadow.offsetYProperty(), shadow.getOffsetY())
),
new KeyFrame(Duration.millis(1000),
new KeyValue(shadow.radiusProperty(), NEW_DROP_SHADOW.getRadius()),
new KeyValue(shadow.spreadProperty(), NEW_DROP_SHADOW.getSpread()),
new KeyValue(shadow.offsetXProperty(), NEW_DROP_SHADOW.getOffsetX()),
new KeyValue(shadow.offsetYProperty(), NEW_DROP_SHADOW.getOffsetY())
)
);
Как правильно было анимировать эффект тени в JavaFX?