私はすでにHow to wait for a transition to end in javafx 2.1?を見てきましたが、私の問題は解決していません。JavaFXのImageViewに移行するには
私はImageViewのオブジェクトのリストを持っている、と私は、このリストを反復処理し、リストの各「スライド」に関する次のアクションを実行したい:数秒間
- フェード
- での滞在
- フェードアウト
を私は場所に次のコードを持っていますが、遷移が非同期であるため、ループは同時にすべての「スライド」への移行を適用します。
// The method I am running in my class
public void start() {
for (ImageView slide : slides) {
SequentialTransition sequentialTransition = new SequentialTransition();
FadeTransition fadeIn = Transition.getFadeTransition(slide, 0.0, 1.0, 2000);
FadeTransition stayOn = Transition.getFadeTransition(slide, 1.0, 1.0, 2000);
FadeTransition fadeOut = Transition.getFadeTransition(slide, 1.0, 0.0, 2000);
sequentialTransition.getChildren().addAll(fadeIn, stayOn, fadeOut);
this.root.getChildren().add(slide);
sequentialTransition.play();
}
}
// the method in the Transition helper class:
public static FadeTransition getFadeTransition(ImageView imageView, double fromValue, double toValue, int durationInMilliseconds) {
FadeTransition ft = new FadeTransition(Duration.millis(durationInMilliseconds), imageView);
ft.setFromValue(fromValue);
ft.setToValue(toValue);
return ft;
}
私はImageViewのこれらのリストは、一つずつ(関係なくImageViewsの数のリストにあるので、私はハードコードにしたくないが)オブジェクトをアニメーション化することができる方法上の任意のアイデア。ありがとう。
おかげセバスチャンを! :)私はそれを試していない(私は家に帰るときに行うだろうが)それは意味がLOLになります..私はとても愚かな..ありがとう! :)私は家に帰るとあなたを更新します。 –
問題はありません。もし私が追加したいのであれば、TimerとTimerTaskを使って次のスライドをJavaFXとは別に起動させることになります。私は数週間前に自分でスライドショーを書きました。ボタンを追加したり、スライドショーを止めたりすることは、後でアプリケーションに追加したいことかもしれません。 – Sebastian
こんにちはバスティアン、私はあなたが示唆したソリューションを試してみました。コードを実行すると、リストの最後のスライドだけが表示されます。正面に表示されてから消えてフェードアウトし、画面を空白にします。私はここで起こっていない各スライドのためのトランジションをする必要があると思う..任意のアイデア?ありがとうございます:) –