在两个连续的javafx动画之间给出时间差

时间:2015-06-08 05:40:29

标签: animation javafx

我有一系列动画,一个接一个地启动,如下面的代码所示。

animPath.playFromStart();
        animPath.setOnFinished((evt) -> {
            TranslateTransition tCut = showText(lblCutover);
            tCut.playFromStart();
            lblCutover.setVisible(true);
            tCut.setOnFinished((e11) -> {
                try {
                    Thread.sleep(10000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(ARUOLandingPageController.class.getName()).log(Level.SEVERE, null, ex);
                }
                TranslateTransition tCutBack = hideText(lblCutover);
                tCutBack.playFromStart();
                tCutBack.setOnFinished((e12) -> {
                    lblCutover.setVisible(false);

                    anim11.playFromStart();
                    anim11.setOnFinished((evt11) -> {
                         (Some new animation)...
                    });
                });
            });
        });

我有两种类型的动画。一个是路径动画,另一个是翻译动画。路径动画后不需要时间间隔。 但是在完成一个翻译动画后,我想为下一个动画开始给出10秒的时间间隔。 我使用了Thread.Sleep(10000),但它停止了整个舞台。如果我点击任何地方,舞台就没有响应。 有没有办法可以在这些动画之间设置时间间隔而不影响我的ui中的任何其他部分?

1 个答案:

答案 0 :(得分:4)

您可以将多个转场放入SequentialTransition,其中一个可以是PauseTransition Duration.seconds(10)