IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Transition 'Opacité' + 'Couleur de fond' entre deux pages.


Sujet :

JavaFX

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Transition 'Opacité' + 'Couleur de fond' entre deux pages.
    Bonjour,

    Lorsque je clic sur des boutons de mon application, des événements affichent leurs page demandés en passant par une animation de FadeIn/FadeOut (géré par l'opacité).
    Cependant, lors du FadeOut/FadeIn de la page précédente, on est présenté par une fenêtre blanche. Je voudrais faire en sorte que :
    - soit je fais un FadeOut/FadeIn puis, FadeIn/FadeOut, couplé par une couleur de fond qui ne subira aucun changement d'opacité entre les pages.
    - soit je fais un FadeOut/FadeIn en remplaçant le changement d'opacité par une couleur de fond unique/ou objet image...?

    Voici le code que j'ai à vous présenter, je voudrais avoir votre avis sur la méthode a plus sûr, et optimisée.
    J'ai une préférence pour la seconde méthode, mais je suis aussi ouvert à toutes autres dont je n'aurais pas pensé.

    Je ne m'y connais pas en "KeyFrame", alors je suis ouvert à toutes autres propositions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
        public Boolean setScreen(final String name) {
            if (getScreen(name) != null) {
                final DoubleProperty opacity = opacityProperty();
                final ObjectProperty<Color> baseColor = new SimpleObjectProperty<>();
     
                if (!getChildren().isEmpty()) {
                    Timeline fade = new Timeline(
                            new KeyFrame(Duration.ZERO, new KeyValue(opacity, 1.0)),
                            new KeyFrame(new Duration(500), new EventHandler<ActionEvent>() {
                                @Override
                                public void handle(ActionEvent event) {
                                    getChildren().remove(0);
                                    getChildren().add(0, getScreen(name));
                                    Timeline fadeIn = new Timeline(
                                            new KeyFrame(Duration.ZERO, new KeyValue(opacity, 0.0)),
                      /*ICI SVP--->*/       new KeyFrame(Duration.ZERO, new KeyValue(baseColor, Color.BLACK)), // ??? FONCTIONNE PAS
                                            new KeyFrame(new Duration(500), new KeyValue(opacity, 1.0))
                                    );
                                    fadeIn.play();
                                }
                            }, new KeyValue(opacity, 0.0))
                    );
                    fade.play();
                }
     
                else {
                    setOpacity(0.0);
                    getChildren().add(getScreen(name));
     
                    Timeline fadeIn = new Timeline(
                            new KeyFrame(Duration.ZERO, new KeyValue(opacity, 0.0)),
                            new KeyFrame(new Duration(800), new KeyValue(opacity, 1.0))
                    );
                    fadeIn.play();
                }
                return (true);
            }
            else {
                System.out.println("Screen Has Not Been Loaded");
                return (false);
            }
        }
    Pour le code complet --->>> ICI JE VOUS PRIE

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Depuis les semaines qui ont suivi ce post, je me suis demandé s'il était possible de résoudre mon problème de par moi-même.
    Aucune réponse de la part des membres inscrits sur le Forum Java...

    Par quelle méthode auriez-vous procédé si vous aviez la possibilité d'atteindre le résultat dont je cherche, en utilisant vos propre méthodes ?

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Pas vraiment le temps de me pencher sur ca en ce moment mais si j'ai bien compris tu as deux nœuds N1 et N2 ayant chacun deux couleurs différente et lorsque tu enchaînes le fade out et le fade in il y a le soucis qu'entre les deux on aperçoit le blanc de la page de dessous.

    Moi je réglerai ça de la manière suivante :
    • Avant le fade out j'insère un nœud bidon N3 de la couleur destination N2 et placé sous N1.
    • On fait le fade out de N1
    • On insère N2 par dessus N3.
    • On fait le fade in de N2
    • On enlève le nœud bidon N3.


    Comme ça le blanc de la page n'est jamais visible car toujours couvert par le nœud bidon N3 qui a la même couleur que le nœud N2.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Au final, j'ai trouvé...
    Je n'ai eu qu'à fixer une couleur de fond par défaut à la scène, dans la fonction principale.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Transition entre deux pages
    Par Elradriel dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/05/2014, 21h23
  2. Affichage Frame / Transition entre deux pages
    Par stales dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/04/2011, 22h02
  3. transition entre deux pages (préchargement de la deuxième page)
    Par bitbis dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/11/2007, 09h12
  4. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  5. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo