问题
I have two timeline which runs inside one function, they are both affect one object, problem is when I play first timeline, other timeline also starts within next line of code, how can I wait until fist timeline finish then play another timeline?
回答1:
Timeline.play() is asynchronous—it starts the animation in the background and returns immediately. There are several ways to achieve sequential execution. Which fits best depends on your use case.
- Use just one
Timelineand move theKeyFrames from your second timeline to the first one, with adjusted start duration. - Start the second timeline when the first one is finished:
timeline1.setOnFinished(e -> timeline2.play()). - If you can, use
Transitions instead ofTimelines and wrap them in aSequentialTransition.
来源:https://stackoverflow.com/questions/29053966/make-javafx-wait-until-timeline-finishes