public final class SequentialTransition extends Transition
Transition
plays a list of Animations
in sequential order.
Children of this Transition
inherit node
, if their
node
property is not specified.
Code Segment Example:
Rectangle rect = new Rectangle (100, 40, 100, 100);
rect.setArcHeight(50);
rect.setArcWidth(50);
rect.setFill(Color.VIOLET);
final Duration SEC_2 = Duration.millis(2000);
final Duration SEC_3 = Duration.millis(3000);
PauseTransition pt = new PauseTransition(Duration.millis(1000));
FadeTransition ft = new FadeTransition(SEC_3);
ft.setFromValue(1.0f);
ft.setToValue(0.3f);
ft.setCycleCount(2f);
ft.setAutoReverse(true);
TranslateTransition tt = new TranslateTransition(SEC_2);
tt.setFromX(-100f);
tt.setToX(100f);
tt.setCycleCount(2f);
tt.setAutoReverse(true);
RotateTransition rt = new RotateTransition(SEC_3);
rt.setByAngle(180f);
rt.setCycleCount(4f);
rt.setAutoReverse(true);
ScaleTransition st = new ScaleTransition(SEC_2);
st.setByX(1.5f);
st.setByY(1.5f);
st.setCycleCount(2f);
st.setAutoReverse(true);
SequentialTransition seqT = new SequentialTransition (rect, pt, ft, tt, rt, st);
seqT.play();
Transition
,
Animation
Animation.Status
Modifier and Type | Field and Description |
---|---|
private static int |
BEFORE |
private Animation[] |
cachedChildren |
private ObservableList<Animation> |
children |
private boolean |
childrenChanged |
private InvalidationListener |
childrenListener |
private java.util.Set<Animation> |
childrenSet |
private int |
curIndex |
private static Node |
DEFAULT_NODE |
private long[] |
delays |
private long[] |
durations |
private static Animation[] |
EMPTY_ANIMATION_ARRAY |
private int |
end |
private static double |
EPSILON |
private boolean[] |
forceChildSync |
private ObjectProperty<Node> |
node
|
private long |
offsetTicks |
private long |
oldTicks |
private ChangeListener<java.lang.Number> |
rateListener |
private double[] |
rates |
private long[] |
startTimes |
private boolean |
toggledRate |
clipEnvelope, INDEFINITE, parent, pulseReceiver
Constructor and Description |
---|
SequentialTransition()
The constructor of
SequentialTransition . |
SequentialTransition(AbstractMasterTimer timer) |
SequentialTransition(Animation... children)
The constructor of
SequentialTransition . |
SequentialTransition(Node node)
The constructor of
SequentialTransition . |
SequentialTransition(Node node,
Animation... children)
The constructor of
SequentialTransition . |
Modifier and Type | Method and Description |
---|---|
private double |
calculateFraction(long currentTicks,
long cycleTicks) |
private static boolean |
checkCycle(Animation child,
Animation parent) |
private Duration |
computeCycleDuration() |
private int |
findNewIndex(long ticks) |
ObservableList<Animation> |
getChildren()
A list of
Animations that will be
played sequentially. |
Node |
getNode() |
protected Node |
getParentTargetNode()
Returns the target
Node for animation of this Transition . |
(package private) void |
impl_jumpTo(long currentTicks,
long cycleTicks,
boolean forceJump) |
(package private) void |
impl_pause() |
(package private) void |
impl_playTo(long currentTicks,
long cycleTicks) |
(package private) void |
impl_resume() |
(package private) void |
impl_start(boolean forceSync) |
(package private) void |
impl_stop() |
(package private) void |
impl_sync(boolean forceSync) |
protected void |
interpolate(double frac)
The method
interpolate() has to be provided by implementations of
Transition . |
private void |
jumpToBefore() |
private void |
jumpToEnd() |
ObjectProperty<Node> |
nodeProperty() |
void |
setNode(Node value) |
private boolean |
startChild(Animation child,
int index) |
getCachedInterpolator, getInterpolator, impl_startable, interpolatorProperty, setInterpolator
autoReverseProperty, currentRateProperty, currentTimeProperty, cycleCountProperty, cycleDurationProperty, delayProperty, getCuePoints, getCurrentRate, getCurrentTime, getCycleCount, getCycleDuration, getDelay, getOnFinished, getRate, getStatus, getTargetFramerate, getTotalDuration, impl_finished, impl_setCurrentRate, impl_setCurrentTicks, impl_timePulse, isAutoReverse, jumpTo, jumpTo, onFinishedProperty, pause, pauseReceiver, play, playFrom, playFrom, playFromStart, rateProperty, resumeReceiver, setAutoReverse, setCycleCount, setCycleDuration, setDelay, setOnFinished, setRate, setStatus, startReceiver, statusProperty, stop, totalDurationProperty
private static final Animation[] EMPTY_ANIMATION_ARRAY
private static final int BEFORE
private static final double EPSILON
private Animation[] cachedChildren
private long[] startTimes
private long[] durations
private long[] delays
private double[] rates
private boolean[] forceChildSync
private int end
private int curIndex
private long oldTicks
private long offsetTicks
private boolean childrenChanged
private boolean toggledRate
private final InvalidationListener childrenListener
private final ChangeListener<java.lang.Number> rateListener
private ObjectProperty<Node> node
Node
is used in all child Transitions
, that do not define a target Node
themselves. This
can be used if a number of Transitions
should be applied to a
single Node
.
It is not possible to change the target node
of a running
Transition
. If the value of node
is changed for a
running Transition
, the animation has to be stopped and started again to
pick up the new value.
private static final Node DEFAULT_NODE
private final java.util.Set<Animation> childrenSet
private final ObservableList<Animation> children
public SequentialTransition(Node node, Animation... children)
SequentialTransition
.node
- The target Node
to be used in child
Transitions
that have no Node
specified
themselveschildren
- The child Animations
of
this SequentialTransition
public SequentialTransition(Animation... children)
SequentialTransition
.children
- The child Animations
of
this SequentialTransition
public SequentialTransition(Node node)
SequentialTransition
.node
- The target Node
to be used in child
Transitions
that have no Node
specified
themselvespublic SequentialTransition()
SequentialTransition
.SequentialTransition(AbstractMasterTimer timer)
public final void setNode(Node value)
public final Node getNode()
public final ObjectProperty<Node> nodeProperty()
public final ObservableList<Animation> getChildren()
Animations
that will be
played sequentially.
It is not possible to change the children of a running
SequentialTransition
. If the children are changed for a running
SequentialTransition
, the animation has to be stopped and started
again to pick up the new value.
protected Node getParentTargetNode()
Node
for animation of this Transition
.
This method returns node
if it is set, else returns its
parent.getTargetNode()
otherwise null.getParentTargetNode
in class Transition
private Duration computeCycleDuration()
private double calculateFraction(long currentTicks, long cycleTicks)
private int findNewIndex(long ticks)
void impl_sync(boolean forceSync)
impl_sync
in class Transition
void impl_start(boolean forceSync)
impl_start
in class Animation
void impl_pause()
impl_pause
in class Animation
void impl_resume()
impl_resume
in class Animation
private boolean startChild(Animation child, int index)
void impl_playTo(long currentTicks, long cycleTicks)
impl_playTo
in class Transition
void impl_jumpTo(long currentTicks, long cycleTicks, boolean forceJump)
impl_jumpTo
in class Transition
private void jumpToEnd()
private void jumpToBefore()
protected 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.interpolate
in class Transition
frac
- The relative position