2016-05-10 7 views
0

以下のコードは、私のシーケンシャルトランジションの機能の一部を示しています。Pslideshow.pause()を使用して、スライドを一時停止してスライドを再生できるようにします。JAVAFXのシーケンシャルトランジションを一時停止する方法

しかし、私はPslideshow.play()を使用したら、私はスライドを表示するために作成ペインをクリックしたとき、にPslideshow変化の状態が直ちに停止、実現。

は、私は私の順次移行を一時停止し、再びプレーするユーザーを可能にするために何をすべき?前もって感謝します!

public void start(){ 
for (Label slide : LabelSlides) { 

    SequentialTransition sequentialTransition = new SequentialTransition(); 
    FadeTransition fadeIn = getFadeTransition(slide, 0.0, 1.0, 2000); 
    PauseTransition stayOn = new PauseTransition(Duration.millis(2000)); 
    FadeTransition fadeOut = getFadeTransition(slide, 1.0, 0.0, 2000); 

    sequentialTransition.getChildren().addAll(fadeIn, stayOn, fadeOut); 
    slide.setOpacity(0); 
    this.root.setStyle("-fx-background-color: Black"); 
    this.root.getChildren().add(slide); 
    Pslideshow.getChildren().add(sequentialTransition); 
    } 

    Pslideshow.play(); 
} 

@FXML 
public void PlaySlide(ActionEvent event) throws IOException 
{ Node node=(Node) event.getSource(); 
    Stage stage=(Stage) node.getScene().getWindow(); 
    Stage newStage = new Stage(); 
    newStage.setWidth(stage.getWidth()); 
    newStage.setHeight(stage.getHeight()); 
    Scene_3Controller simpleSlideShow = new Scene_3Controller();  
    Scene scene = new Scene(simpleSlideShow.getRoot()); 
    MediaP.play(); 
    simpleSlideShow.start();  
    scene.setOnMouseClicked(new ClickHandler());  
    newStage.setScene(scene); 
    newStage.show(); 
} 
+0

は、ユーザ入力のためのあなたの次のスライド待ちをしていますか? – ItachiUchiha

+0

@ItachiUchihaいいえ、私はLabelSlides []に画像を保存しました。私はちょうどdbから取得します –

+0

質問をしている間にはっきりしていたはずです。あなたが "' Pslideshow.play() 'がPslideshow変更のステータスを即座に「停止」に変更すると言うとき。私は本当に起こっているはずがない、どのように正確にステータスをチェックしているのですか? – ItachiUchiha

答えて

0

コード私はSequentialTransitionは異なる状態、すなわちRUNNINGを変更することができる方法を説明するために作成SequentialTransitionStatus要旨からコピーされた一時停止は、停止しました。

import javafx.animation.FadeTransition; 
import javafx.animation.PauseTransition; 
import javafx.animation.SequentialTransition; 
import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 
import javafx.util.Duration; 

public class SequentialTransitionStatus extends Application { 

    @Override 
    public void start(Stage primaryStage) { 

     Label slide = new Label("slide"); 
     slide.setOpacity(0); 

     FadeTransition fadeIn = new FadeTransition(Duration.millis(2000), slide); 
     fadeIn.setFromValue(0); 
     fadeIn.setToValue(1); 
     PauseTransition stayOn = new PauseTransition(Duration.millis(1000)); 
     FadeTransition fadeOut = new FadeTransition(Duration.millis(2000), slide); 
     fadeOut.setFromValue(1); 
     fadeOut.setToValue(0); 
     SequentialTransition sequentialTransition = new SequentialTransition(); 
     sequentialTransition.getChildren().addAll(fadeIn, stayOn, fadeOut); 

     Label status = new Label(); 
     status.textProperty().bind(sequentialTransition.statusProperty().asString()); 

     Button play = new Button("Play"); 
     play.setOnAction(event -> sequentialTransition.play()); 

     Button pause = new Button("Pause"); 
     pause.setOnAction(event -> sequentialTransition.pause()); 

     HBox hBox = new HBox(10, play, pause); 
     hBox.setAlignment(Pos.CENTER); 

     VBox box = new VBox(20, slide, hBox, status); 
     box.setAlignment(Pos.CENTER); 

     Scene scene = new Scene(box, 300, 250); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 

    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 
関連する問題