JavaFX: animation par image clé (keyframe) #
Animation par image clé #
-
On donne des valeurs à des points précis dans le temps
-
Les valeurs intermédiaires sont calculés par l’animation
-
Conceptuellement on donne:
Au temps 0: opacité est 1.0 Au temps 10: opacité est 0.5 Au temps 20: opacité est 1.0
-
Le système va générer:
Au temps 0: opacité est 1.0 Au temps 1: opacité est 0.95 Au temps 2: opacité est 0.90 Au temps 3: opacité est 0.85 ... Au temps 10: opacité est 0.5 Au temps 11: opacité est 0.55 Au temps 12: opacité est 0.6 ... Au temps 20: opacité est 1.0
Créer l’animation #
- Créer l’animation
Timeline animation = new Timeline();
Ajouter des images clés #
-
Spécifier l’instant
double tempsCle01Milisecondes = 0; Duration tempsCle01 = new Duration(tempsCle01Milisecondes);
-
Spécifier la valeur
KeyValue valeurCle01 = new KeyValue(opacityProperty(), 0.8);
-
Ajouter l’image clé à l’animation
KeyFrame cle01 = new KeyFrame(tempsCle01, valeurCle01); animation.getKeyFrames().add(cle01);
-
Typiquement ont fait tout ça d’un coup:
animation.getKeyFrames() .add(new KeyFrame(new Duration(1000), new KeyValue(opacityProperty(), 0.5)));
Contrôler l’animation #
-
Spécifier le nombre de fois où l’animation va jouer
animation.setCycleCount(20);
-
Spécifier une boucle indéfinie
animation.setCycleCount(-1);
-
Démarrer
animation.playFromStart();
-
Arrêter
animation.stop();