Βίντεο: Java Tutorial ( How to make Animation in JavaFX ) 01 2024
Μπορείτε να μεταφέρετε περαιτέρω τις εφαρμογές JavaFX ενσωματώνοντας απλά εφέ κίνησης. Τα αποτελέσματα γενικά καθιστούν τις εφαρμογές σας ζωντανές επιτρέποντας την κίνηση αντικειμένων στην οθόνη.
Μπορείτε να προχωρήσετε πολύ προς τη βελτίωση της εμφάνισης και των αισθήσεων των εφαρμογών σας JavaFX, εφαρμόζοντας ειδικά εφέ, ενσωματώνοντας τις δεσμεύσεις ιδιοκτησίας για να κάνετε τα χειριστήρια πιο ευαίσθητα και χρησιμοποιώντας τον ήχο και τα μέσα για την παροχή οπτικοακουστικού ενδιαφέροντος.
Μην πάρετε τις ελπίδες σας να κερδίσετε ένα Όσκαρ για Καλύτερο Animation τον επόμενο χρόνο. Κανείς δεν θα ξεγελάσει να πιστεύει ότι συνεργάστηκε με την Pixar στην αίτησή σας. Παρόλα αυτά, μπορείτε να προσθέσετε μερικές ενδιαφέρουσες κτυπήματα στις εφαρμογές σας χρησιμοποιώντας αυτές τις τεχνικές.
Η βασική ιδέα των κινήσεων JavaFX είναι να χειρίζεται την τιμή μιας ή περισσοτέρων ιδιοτήτων κόμβου σε τακτά χρονικά διαστήματα. Για παράδειγμα, υποθέστε ότι έχετε έναν κύκλο που αντιπροσωπεύει μια μπάλα και θέλετε να την μετακινήσετε από την αριστερή πλευρά της οθόνης προς τα δεξιά. Αν υποθέσουμε ότι το πλάτος της οθόνης είναι 600 εικονοστοιχεία, θα ζωντανέψετε τον κύκλο μεταβάλλοντας την ιδιότητα posX από 0 έως 600.
Δύο παράγοντες επηρεάζουν πόσο γρήγορα μετακινείται η μπάλα στην οθόνη: ο χρόνος που διαρκεί μεταξύ κάθε αλλαγής στην ιδιότητα posX και η αύξηση που προσθέτετε στην ιδιότητα posX σε κάθε χρονικό διάστημα.
Για παράδειγμα, εάν προσθέσετε 3 στην ιδιότητα posX σε κάθε χρονικό διάστημα, θα χρειαστούν 200 διαστήματα για να φτάσετε στα 600 (3 x 200 = 600). Εάν τα διαστήματα συμβαίνουν κάθε 10 χιλιοστά του δευτερολέπτου (100 φορές ανά δευτερόλεπτο), θα χρειαστούν 2, 000 χιλιοστά του δευτερολέπτου - 2 πλήρη δευτερόλεπτα - για να περάσει η μπάλα από την αριστερή προς τη δεξιά πλευρά.
Χωρίς animations JavaFX, θα μπορούσατε να εφαρμόσετε την κινούμενη μπάλα χρησιμοποιώντας το αντικείμενο Timer Java για να μετακινήσετε την μπάλα σε τακτά χρονικά διαστήματα. Η τάξη χρονοδιακόπτη μπορεί να είναι δύσκολο να ρυθμιστεί και να χρησιμοποιηθεί σωστά. Οι κλάσεις animation JavaFX κάνουν την κίνηση των κόμβων σας μια πολύ απλούστερη πρόταση.
Το JavaFX παρέχει δύο βασικούς τρόπους δημιουργίας κινούμενων εικόνων: σκληρός τρόπος και εύκολος τρόπος:
-
Ο σκληρός τρόπος και στη συνέχεια να γράψετε ακροατές συμβάντων που καλούνται όταν συμβαίνουν τα συμβάντα χρονομέτρησης. Στην περίπτωση των ακροατών, χειρίζεστε τις ιδιότητες των κόμβων που θέλετε να ζωντανέψετε. Για παράδειγμα, για να μετακινήσετε μια μπάλα στην οθόνη, θα πρέπει να ρυθμίσετε ένα χρονικό διάστημα που χτυπά κάθε 10 χιλιοστά του δευτερολέπτου. Σε κάθε κτύπημα, θα αυξήσετε τη θέση x της μπάλας κατά 3. Θα ρυθμίσετε τότε το χρονόμετρο για να εκτελέσετε συνολικά 200 φορές για να μετακινήσετε την μπάλα.
Η ρύθμιση αυτής της κινούμενης εικόνας απαιτεί να χρησιμοποιήσετε δύο κατηγορίες: Timeline και KeyFrame και να γράψετε έναν ακροατή ActionEvent για να μετακινήσετε την μπάλα.
Ο
-
εύκολος τρόπος εκμεταλλεύεται τις κλάσεις συντομεύσεων που παρέχονται από το JavaFX για την εύκολη εφαρμογή κοινών τύπων κινούμενων εικόνων. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε την κλάση TranslateTransition για να μετακινήσετε εύκολα ένα κύκλο από τη μια πλευρά της οθόνης στην άλλη για μια καθορισμένη χρονική περίοδο. Απλά ρυθμίσατε μια μεταφραστική μετάφραση που διευκρινίζει ότι θέλετε να μεταβάλλετε τη θέση x της μπάλας από 0 σε 600 μέσα σε 2 δευτερόλεπτα. Η τάξη TranslateTransition θα φροντίσει τις λεπτομέρειες.