0

我编写了一个小应用程序来执行一些长时间运行的任务。我不想让用户等待并只看到一个进度条,而是想显示一些关于应用程序的(变化的)信息。

为此,我在扩展的构造函数中编写了以下代码Pane

FadeTransition fadeOutTransition = new FadeTransition(Duration.millis(1000), this);
fadeOutTransition.setFromValue(0.8);
fadeOutTransition.setToValue(0.0);

同样的fadeInTransition. 并进一步...

SequentialTransition seqTransition = new SequentialTransition (
      new Transition() {
         { setInterpolator(Interpolator.DISCRETE);
           setCycleDuration(Duration.seconds(1)); }

           protected void interpolate(double frac) {
               int nextElement = (int) ((explenations.size() - 1) * Math.random());

               Explenation explenation = explenations.get(nextElement);
               questionLabel.setText(explenation.getQuestion());
               answerLabel.setText(explenation.getAnswer());
           }
       },
       fadeInTransition,
       new PauseTransition(Duration.seconds(15)),
       fadeOutTransition
);

我想要的是淡入的文本,在那里停留约 15 秒,然后再次淡出。不幸的是,动画会闪烁,移动的速度越来越慢——而且PauseTransition永远不会花费 15 秒!代码有什么问题?我在 Mac OS X 上使用 Java 7 和 JavaFX 2.2。

4

1 回答 1

0

问题似乎是我调用了该函数

seqTransition.play();

多次。从那里可能会出现闪烁和不平等的等待时间。

于 2013-06-27T14:32:02.990 回答