public final class Timeline extends Animation
Timeline
can be used to define a free form animation of any
WritableValue
, for example, all
JavaFX Properties
.
A Timeline
, defined by one or more KeyFrame
s, processes
individual KeyFrame
sequentially, in the order specified by
KeyFrame.time
. The animated properties, defined as key values in
KeyFrame.values
, are interpolated
to/from the targeted key values at the specified time of the KeyFrame
to Timeline
's initial position, depends on Timeline
's
direction.
Timeline
processes individual KeyFrame
at or after specified
time interval elapsed, it does not guarantee the timing when KeyFrame
is processed.
The Animation.cycleDurationProperty()
will be set to the largest time value
of Timeline's keyFrames.
If a KeyFrame
is not provided for the time==0s
instant, one
will be synthesized using the target values that are current at the time
Animation.play()
or Animation.playFromStart()
is called.
It is not possible to change the keyFrames
of a running Timeline
.
If the value of keyFrames
is changed for a running Timeline
, it
has to be stopped and started again to pick up the new value.
A simple Timeline can be created like this:
final Timeline timeline = new Timeline();
timeline.setCycleCount(2);
timeline.setAutoReverse(true);
timeline.getKeyFrames().add(new KeyFrame(Duration.millis(5000),
new KeyValue (node.translateXProperty(), 25)));
timeline.play();
This Timeline will run for 10s, animating the node by x axis to value 25 and then back to 0 on the second cycle.
Warning: A running Timeline is being referenced from the FX runtime. Infinite Timeline might result in a memory leak if not stopped properly. All the objects with animated properties would not be garbage collected.
-
Property Summary
Properties inherited from class javafx.animation.Animation
autoReverse, currentRate, currentTime, cycleCount, cycleDuration, delay, onFinished, rate, status, totalDuration
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description ObservableList<KeyFrame>
getKeyFrames()
Returns theKeyFrames
of thisTimeline
.void
stop()
Stops the animation and resets the play head to its initial position.Methods inherited from class javafx.animation.Animation
autoReverseProperty, currentRateProperty, currentTimeProperty, cycleCountProperty, cycleDurationProperty, delayProperty, getCuePoints, getCurrentRate, getCurrentTime, getCycleCount, getCycleDuration, getDelay, getOnFinished, getRate, getStatus, getTargetFramerate, getTotalDuration, isAutoReverse, jumpTo, jumpTo, onFinishedProperty, pause, play, playFrom, playFrom, playFromStart, rateProperty, setAutoReverse, setCycleCount, setCycleDuration, setDelay, setOnFinished, setRate, setStatus, statusProperty, totalDurationProperty
-
Constructor Details
-
Timeline
The constructor ofTimeline
. This constructor allows to define aAnimation.targetFramerate
.- Parameters:
targetFramerate
- The custom target frame rate for thisTimeline
keyFrames
- The keyframes of thisTimeline
-
Timeline
The constructor ofTimeline
.- Parameters:
keyFrames
- The keyframes of thisTimeline
-
Timeline
public Timeline(double targetFramerate)The constructor ofTimeline
. This constructor allows to define aAnimation.targetFramerate
.- Parameters:
targetFramerate
- The custom target frame rate for thisTimeline
-
Timeline
public Timeline()The constructor ofTimeline
.
-
-
Method Details
-
getKeyFrames
Returns theKeyFrames
of thisTimeline
.- Returns:
- the
KeyFrames
-
stop
public void stop()Stops the animation and resets the play head to its initial position. If the animation is already stopped, this method has no effect.Note:
stop()
is an asynchronous call, theAnimation
may not stop immediately.
-