Timeline
あなたが特定の時間にイベントをトリガと同様の性質をアニメーション化することができます。次の例では、長方形のrotate
プロパティは、最初の回転と最後の回転の値として2 KeyFrame
秒を使用して0〜180までアニメーションされます(最初の回転は必要ありません。この場合、色のためにもう少し作業が必要になります)。追加KeyFrame
はRectangle
のfill
を変更EventHandler<ActionEvent>
をトリガー:
Rectangle rec = new Rectangle(50, 50, 50, 50);
Duration rotateDuration = Duration.seconds(5);
Timeline timeline = new Timeline(
new KeyFrame(Duration.ZERO, new KeyValue(rec.rotateProperty(), 0)), // initial rotate
new KeyFrame(rotateDuration.divide(2), evt -> {
// event for halfway through
rec.setFill(Color.RED);
}),
new KeyFrame(rotateDuration, new KeyValue(rec.rotateProperty(), 180)) // end value of rotate
);
timeline.play();
あなたはピボットポイントを指定する必要がある場合は、あなたもNode
へRotate
transformを適用し、それがangle
プロパティのアニメーション化できます。
Rotate rotate = new Rotate(0, pivotX, pivotY);
rec.getTransforms().add(rotate);
...
Timeline timeline = new Timeline(
new KeyFrame(Duration.ZERO, new KeyValue(rotate.angleProperty(), 0)),
...
ありがとうございました! 私の三角形の中心を中心に回転が必要です。私はRotateTransitionを使っていましたが、タイムラインでは動作しませんでしたか? – Felix
@Felix 'Timeline'では動作しませんが、' Node'に適用された 'Rotate'トランスフォームの' angle'プロパティをアニメートすることができます。 – fabian
はい、今は完璧に動作します! 'Rotate rt = new Rotate(0、20、30、0、Rotate.Y_AXIS)' – Felix