Programavimas

„JavaFX 2“ animacija: kelio perėjimai

Vienas ryškiausių „JavaFX 2“ aspektų yra animacijos palaikymas. Įžvalgus „JavaFX“ perėjimų ir laiko juostos animacijos kūrimas apima ir perėjimų, ir „JavaFX 2“ laiko juostų naudojimą. Šiame tinklaraščio įraše pritaikau toje pamokoje pateiktą pavyzdį, kad galėčiau konkrečiai parodyti kelio perėjimus.

2 pavyzdys („Kelio perėjimas“), parodytas „JavaFX“ perėjimų ir laiko juostos animacijos kūrimas, rodo kelio su klasėmis kūrimą iš „JavaFX 2“ paketo „formos“: javafx.scene.shape.Path, javafx.scene.shape.MoveTo ir javafx . scenos forma. Kubinė kreivė. Tada šis pavyzdys parodo javafx.animation.PathTransition supaprastinimą ir pritaikytą momentinį javafx.scene.shape.Rectangle judėti sukurtu keliu.

Žemiau esančiame kodų sąraše padariau keletą nedidelių 2 pavyzdžio pakeitimų, susijusių su „JavaFX“ perėjimų ir laiko juostos animacijos kūrimu. Aš specialiai pakeičiau judančią formą iš stačiakampio į apskritimą, prie kelio pridėjau dvi „galo rankenėles“ kaip du atskirus apskritimus ir pridėjau galimybę pakeisti kelio neskaidrumą kartu su animuotais apskritimo judesiais. Gražus šalutinis poveikis naudojant nulinį neskaidrumą yra tas, kad pats kelias neatsiranda, o atrodo, kad apskritimas juda laisvai. Aš bandžiau suskaidyti kiekvieną didelę šio kūrinio dalį į savo asmeninį metodą, kad būtų lengviau pamatyti funkcionalumo „gabalėlius“.

JavaFxAnimations.java

pakuotė dustin.pavyzdžiai; importuoti java.util.List; importuoti javafx.animation.PathTransition; importuoti javafx.animation.Timeline; importuoti javafx.application.Application; importuoti javafx.scene.Group; importuoti javafx.scene.Scene; importuoti javafx.scene.paint.Color; importuoti javafx.scene.shape. *; importuoti javafx.stage.Stage; importuoti javafx.util.Duration; / ** * Paprastas „JavaFX“ animacijų demonstravimo pavyzdys. * * Šiek tiek pritaikytas iš 2 pavyzdžio („Kelio perėjimas“), kuris pateiktas * „Perėjimų ir laiko juostos animacijos kūrimas„ JavaFX “* (//docs.oracle.com/javafx/2.0/animations/jfxpub-animations.htm). * * @author Dustin * / viešosios klasės „JavaFxAnimations“ išplečia taikomąją programą {/ ** * „Generate Path“, kuriame bus animacija. * * @param pathOpacity Kelio vaizdavimo neskaidrumas. * @return Sugeneruotas kelias. * / privatus kelias generuotiCurvyPath (galutinis dvigubas keliasOpacity) {galutinis kelio kelias = naujas kelias (); path.getElements (). add (naujas „MoveTo“ (20,20)); path.getElements (). add (new CubicCurveTo (380, 0, 380, 120, 200, 120)); path.getElements (). add (new CubicCurveTo (0, 120, 0, 240, 380, 240)); path.setOpacity (pathOpacity); grįžimo kelias; } / ** * Sukurkite kelio perėjimą. * * @param shape Shape keliauti keliu. * @param path Kelias, kuriuo reikia važiuoti. * @return PathTransition. * / privatus „PathTransition“ generuojaPathTransition (galutinė formos forma, galutinis kelio kelias) {final PathTransition pathTransition = new PathTransition (); pathTransition.setDuration (Trukmė.sekundės (8.0)); pathTransition.setDelay (Trukmė.sekundės (2.0)); pathTransition.setPath (kelias); pathTransition.setNode (forma); pathTransition.setOrientation (PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT); pathTransition.setCycleCount (Timeline.INDEFINITE); pathTransition.setAutoReverse (true); grįžimo keliasPerėjimas; } / ** * Nustatykite kelio neskaidrumą pagal komandinės eilutės argumentą, jei jis pateiktas * arba pagal nutylėjimą nulis, jei nenurodyta skaitinė vertė. * * @return Neskaidrumas, naudojamas kelyje. * / privatus dvigubai nustatytiPathOpacity () {final Parameters params = getParameters (); galutiniai sąrašo parametrai = params.getRaw (); dvigubas keliasOpacity = 0.0; if (! parametras.isEmpty ()) {pabandykite {pathOpacity = Double.valueOf (parametrai.get (0)); } pagauti (NumberFormatException nfe) {pathOpacity = 0.0; }} return pathOpacity; } / ** * Taikykite animaciją, šios klasės temą. * * @param group Grupė, kuriai taikoma animacija. * / private void applyAnimacija (galutinė grupės grupė) {final Circle Circle = new Circle (20, 20, 15); apskritimas.setFill (Spalva.DARKRED); galutinis kelio kelias = generuotiCurvyPath (nustatytiPathOpacity ()); group.getChildren (). pridėti (kelias); group.getChildren (). pridėti (ratas); group.getChildren (). add (naujas ratas (20, 20, 5)); group.getChildren (). add (naujas ratas (380, 240, 5)); galutinis PathTransition perėjimas = generuotiPathTransition (apskritimas, kelias); perėjimas.žaidimas (); } / ** * Paleiskite „JavaFX“ programą * * @param stage Primary stage. * @throws Išimtis Taikant išimtis. * / @ Nepaisyti viešojo niekinio starto (paskutinio etapo etapas) išmeta išimtį {final Group rootGroup = new Group (); paskutinė scenos scena = nauja scena (rootGroup, 600, 400, Color.GHOSTWHITE); stage.setScene (scena); stage.setTitle („JavaFX 2 animacijos“); stage.show (); taikytiAnimation (rootGroup); } / ** * Pagrindinė „JavaFX“ programos paleidimo funkcija. * * @param argumentai Komandinės eilutės argumentai; Pirmas pasirenkamas argumentas yra rodomo kelio * neskaidrumas (0 efektyviai daro kelią * nematomu). * / public static void main (final String [] argumentai) {Application.launch (argumentai); }} 

Šiose ekrano momentinių nuotraukų serijose rodomas šis paprastas „JavaFX“ animacijos pavyzdys. Jie išvardyti mažėjančio neskaidrumo tvarka (nuo 1,0 iki 0,0).

Pritaikyto „PathTransition“ pavyzdžio demonstravimas (neskaidrumas 1.0)

Adaptuoto kelio perėjimo pavyzdžio demonstravimas (neskaidrumas 0,2)

Adaptuoto kelio perėjimo pavyzdžio demonstravimas (neskaidrumas 0,05)

Pritaikyto „PathTransition“ pavyzdžio demonstravimas (neskaidrumas 0,0)

Kiekviena iš pirmiau minėtų ekrano momentinių nuotraukų buvo padaryta paleidus programą su nurodytu komandinės eilutės argumentu (1, 0,2, 0,05 ir 0).

Šis pritaikytas pavyzdys parodė, kaip naudoti Kelias perėjimas animuoti mazgo judėjimą nustatytu keliu (anksčiau rašiau tinklaraštį apie kelio naudojimą ir kai kurias jo alternatyvas). Kūrėjai gali įdiegti savo išvestį iš pereinamojo laikotarpio ir yra kitų palaikomų perėjimų (pvz., „FadeTransition“, „ParallelTransition“ ir „SequentialTransition“).

Tai yra paprastas procesas, norint greitai pradėti taikyti „JavaFX 2“ animaciją naudojant pateiktas „Transition“ klases.

Originalų skelbimą galima rasti adresu //marxsoftware.blogspot.com/ (įkvėpta faktinių įvykių)

Šią istoriją „JavaFX 2 animacija: kelio perėjimai“ iš pradžių paskelbė „JavaWorld“.

$config[zx-auto] not found$config[zx-overlay] not found