Странное поведение FadeTransition в функции handleStateChangeNotification в Preloader - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь добавить FadeTransition в свой класс предварительного загрузчика, поэтому переход между предварительным загрузчиком и основным приложением более плавный.
Если я использую метод handleStateChangeNotification предварительного загрузчика, затухание незапустить и предварительный загрузчик остается открытым.

@Override
public void handleStateChangeNotification(StateChangeNotification stateChangeNotification) {
    if (stateChangeNotification.getType() == StateChangeNotification.Type.BEFORE_START) {
        FadeTransition fadeTransition = new FadeTransition(Duration.millis(2000));
        fadeTransition.setNode(preloaderStage.getScene().getRoot());
        fadeTransition.setFromValue(1.0);
        fadeTransition.setToValue(0.0);
        fadeTransition.setOnFinished(event ->
                preloaderStage.close());
        fadeTransition.play();
    }
}

Я отладил код, и fadeTransition.play() вызывается, но событие setOnFinished этого не делает, поэтому предварительный загрузчик также остается открытым.

Если я добавлю тот же код в handleApplicationNotification метод работает отлично.Затухание воспроизводится, и сцена закрывается должным образом:

@Override
public void handleApplicationNotification(PreloaderNotification info) {
    if (info instanceof Preloader.ProgressNotification) {
        preloaderController.getProgressBar().setProgress(((Preloader.ProgressNotification) info).getProgress());
        if (preloaderController.getProgressBar().getProgress() == 1.0) {
            FadeTransition fadeTransition = new FadeTransition(Duration.millis(2000));
            fadeTransition.setNode(preloaderStage.getScene().getRoot());
            fadeTransition.setFromValue(1.0);
            fadeTransition.setToValue(0.0);
            fadeTransition.setOnFinished(event ->
                    preloaderStage.close());
            fadeTransition.play();
        }
    }
}

Мой вопрос: почему переход не воспроизводится с handleStateChangeNotification.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...