Βίντεο: Cinéλθετε 6 - Ειδικά εφέ 2024
Τα Ειδικά Εφέ στο JavaFX μπορούν να σας επιτρέψουν να κάνετε τα πράγματα όπως να διακοσμήσετε την εμφάνιση των κόμβων στο γράφημα της σκηνής σας προσθέτοντας ειδικά εφέ όπως θολώματα, σκιές, χρωματικές μετατοπίσεις, λάμπες κ.λπ.. Μπορείτε ακόμη να προσθέσετε προοπτική για να δώσετε στην εφαρμογή σας μια τρισδιάστατη εμφάνιση χωρίς να χρειάζεται να κάνετε πραγματικό 3D προγραμματισμό.
Τα ειδικά εφέ στο JavaFX προέρχονται από την κλάση Effect, μια αφηρημένη κλάση που έχει μια μεγάλη ποικιλία υποκατηγοριών που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε ένα ειδικό αποτέλεσμα. Υπάρχουν συνολικά 17 υποκατηγορίες της κλάσης Effect, αλλά ίσως να μην χρειάζεται να μάθετε όλα τα 17. Αντ 'αυτού, ξεκινήστε εστιάζοντας σε εκείνα τα εφέ που σας επιτρέπουν να κάνετε τα σχήματα σας πιο ρεαλιστικά προσθέτοντας θολότητα, σκιές, αντανακλάσεις και λάμψη.
Όλα τα αποτελέσματα λειτουργούν με παρόμοιο τρόπο. Καταρχήν, δημιουργείτε μια εμφάνιση της κλάσης του αποτελέσματος καλώντας τον προεπιλεγμένο κατασκευαστή. Στη συνέχεια, ρυθμίζετε προαιρετικά τις ιδιότητες του αποτελέσματος καλώντας μία ή περισσότερες καθορισμένες μεθόδους. (Σε πολλές περιπτώσεις, οι προεπιλεγμένες τιμές ιδιοτήτων είναι κατάλληλες, επομένως μπορείτε συχνά να παραλείψετε αυτό το βήμα.) Τέλος, εφαρμόζετε το αποτέλεσμα σε έναν κόμβο καλώντας τη μέθοδο setEffect του κόμβου.
Για παράδειγμα, εδώ είναι λίγο κώδικας που δημιουργεί ένα ορθογώνιο, το γεμίζει, και στη συνέχεια προσθέτει μια σκιά σταγόνας:
Ορθογώνιο r1 = νέο ορθογώνιο (50, 50, 100, 100); r1. setFill (Χρώμα.LIGHTGRAY); r1. setStroke (Χρώμα, ΜΑΥΡΟ); r1. setStrokeWidth (2); DropShadow shadow1 = νέα DropShadow (); r1. setEffect (shadow1);
Ο αριθμός αυτός δείχνει το αποτέλεσμα αυτής της επίδρασης. Όπως μπορείτε να δείτε, το ορθογώνιο περιβάλλεται από μια λεπτή σκιά.
Η μέθοδος setEffect ορίζεται από την κλάση Node, που σημαίνει ότι μπορείτε να εφαρμόσετε ένα αποτέλεσμα σε οποιονδήποτε κόμβο στο γράφημα σκηνής. Η επίδραση εφαρμόζεται όχι μόνο στον κόμβο του οποίου η μέθοδος setEffect καλείτε, αλλά και σε όλα τα παιδιά αυτού του κόμβου. Στην πραγματικότητα, αν καλέσετε setEffect στον κόμβο ρίζας μιας σκηνής, το αποτέλεσμα θα εφαρμοστεί σε ολόκληρη τη σκηνή.