public abstract class Transition extends Animation
Transition
based animations, such as PathTransition
and
RotateTransition
.
This class offers a simple framework to define animation. It provides all the
basic functionality defined in Animation
. Transition
requires
the implementation of a method interpolate(double)
which is the
called in each frame, while the Transition
is running.
In addition an extending class needs to set the duration of a single cycle
with Animation#setCycleDuration(javafx.util.Duration)
. This duration
is usually set by the user via a duration property (as in
duration
) for example. But it can also be calculated
by the extending class as is done in ParallelTransition
and
FadeTransition
.
Below is a simple example. It creates a small animation that updates the
text
property of a javafx.scene.text.Text
node. It starts
with an empty String
and adds gradually letter by letter until the
full String
was set when the animation finishes.
final String content = "Lorem ipsum";
final Text text = new Text(10, 20, "");
final Animation animation = new Transition() {
{
setCycleDuration(Duration.millis(2000));
}
protected void interpolate(double frac) {
final int length = content.length();
final int n = Math.round(length * (float) frac);
text.setText(content.substring(0, n));
}
};
animation.play();
Animation
Type | Property and Description |
---|---|
<any> |
interpolator
Controls the timing for acceleration and deceleration at each
Transition cycle. |
autoReverseProperty, currentRateProperty, currentTimeProperty, cycleCountProperty, cycleDurationProperty, delayProperty, onFinishedProperty, rateProperty, statusProperty, totalDurationProperty
Animation.Status
Modifier and Type | Field and Description |
---|---|
private Interpolator |
cachedInterpolator |
private static Interpolator |
DEFAULT_INTERPOLATOR |
private <any> |
interpolator
Controls the timing for acceleration and deceleration at each
Transition cycle. |
clipEnvelope, INDEFINITE, parent, pulseReceiver
Constructor and Description |
---|
Transition()
The constructor of
Transition . |
Transition(AbstractMasterTimer timer) |
Transition(double targetFramerate)
The constructor of
Transition . |
Modifier and Type | Method and Description |
---|---|
private double |
calculateFraction(long currentTicks,
long cycleTicks) |
(package private) void |
doJumpTo(long currentTicks,
long cycleTicks,
boolean forceJump) |
(package private) void |
doPlayTo(long currentTicks,
long cycleTicks) |
protected Interpolator |
getCachedInterpolator()
Returns the
Interpolator , that was set when the
Transition was started. |
Interpolator |
getInterpolator()
Gets the value of the property interpolator.
|
protected Node |
getParentTargetNode()
Returns the first non-
null target Node in the parent hierarchy of
this Transition , or null if such a node is not found. |
protected abstract void |
interpolate(double frac)
The method
interpolate() has to be provided by implementations of
Transition . |
<any> |
interpolatorProperty()
Controls the timing for acceleration and deceleration at each
Transition cycle. |
void |
setInterpolator(Interpolator value)
Sets the value of the property interpolator.
|
(package private) boolean |
startable(boolean forceSync) |
(package private) void |
sync(boolean forceSync) |
autoReverseProperty, currentRateProperty, currentTimeProperty, cycleCountProperty, cycleDurationProperty, delayProperty, doPause, doResume, doStart, doStop, doTimePulse, finished, getCuePoints, getCurrentRate, getCurrentTime, getCycleCount, getCycleDuration, getDelay, getOnFinished, getRate, getStatus, getTargetFramerate, getTotalDuration, isAutoReverse, jumpTo, onFinishedProperty, pause, pauseReceiver, play, playFrom, playFrom, playFromStart, rateProperty, resumeReceiver, setAutoReverse, setCurrentRate, setCurrentTicks, setCycleCount, setCycleDuration, setDelay, setOnFinished, setRate, setStatus, startReceiver, statusProperty, stop, totalDurationProperty
public final <any> interpolatorProperty
Transition
cycle.
This may only be changed prior to starting the transition or after the
transition has ended. If the value of interpolator
is changed for
a running Transition
, the animation has to be stopped and started again to
pick up the new value.
Default interpolator is set to Interpolator.EASE_BOTH
.
getInterpolator()
,
setInterpolator(Interpolator)
private <any> interpolator
Transition
cycle.
This may only be changed prior to starting the transition or after the
transition has ended. If the value of interpolator
is changed for
a running Transition
, the animation has to be stopped and started again to
pick up the new value.
Default interpolator is set to Interpolator.EASE_BOTH
.
private static final Interpolator DEFAULT_INTERPOLATOR
private Interpolator cachedInterpolator
public Transition(double targetFramerate)
Transition
.
This constructor allows to define a target framerate
.targetFramerate
- The custom target frame rate for this Transition
public Transition()
Transition
.Transition(AbstractMasterTimer timer)
public final void setInterpolator(Interpolator value)
public final Interpolator getInterpolator()
public final <any> interpolatorProperty()
Transition
cycle.
This may only be changed prior to starting the transition or after the
transition has ended. If the value of interpolator
is changed for
a running Transition
, the animation has to be stopped and started again to
pick up the new value.
Default interpolator is set to Interpolator.EASE_BOTH
.
getInterpolator()
,
setInterpolator(Interpolator)
protected Interpolator getCachedInterpolator()
Interpolator
, that was set when the
Transition
was started.
Changing the interpolator
of a running Transition
should
have no immediate effect. Instead the running Transition
should
continue to use the original Interpolator
until it is stopped and
started again.Interpolator
that was set when this
Transition
was startedprotected Node getParentTargetNode()
null
target Node
in the parent hierarchy of
this Transition
, or null
if such a node is not found.
A parent animation is one that can have child animations. Examples are
SequentialTransition
and
ParallelTransition
. A parent animation can
also be a child of another parent animation.
Note that if this Transition
has a target node set and is not a parent animation,
it will be ignored during the call as this method only queries parent animations.
Node
protected abstract void interpolate(double frac)
interpolate()
has to be provided by implementations of
Transition
. While a Transition
is running, this method is
called in every frame.
The parameter defines the current position with the animation. At the
start, the fraction will be 0.0
and at the end it will be
1.0
. How the parameter increases, depends on the
interpolator
, e.g. if the
interpolator
is Interpolator.LINEAR
, the fraction will
increase linear.
This method must not be called by the user directly.frac
- The relative positionprivate double calculateFraction(long currentTicks, long cycleTicks)
void doPlayTo(long currentTicks, long cycleTicks)