Komme i gang Med Mojs Animation Library The Burst Module

Vi startet denne serien ved å lære å animere HTML-elementer ved hjelp av mojs. I den andre opplæringen flyttet vi videre til animasjon av innebygde SVG-former ved hjelp av Form modul. Den tredje opplæringen dekket flere måter å animere SVG-former ved hjelp av ShapeSwirl og vakle moduler.

Nå lærer vi å animere forskjellige SVG-former i en brastformasjon ved hjelp av Burst modul. Denne opplæringen vil avhenge av begreper vi dekket i de tre foregående øvelsene. Hvis du ikke allerede har lest dem, foreslår jeg at du først går gjennom dem.

Opprette Basic Burst Animasjoner

Den første tingen vi må gjøre før vi kan lage noen brast-animasjoner, er instantier a Burst gjenstand. Deretter kan vi bare angi verdiene for forskjellige egenskaper for å kontrollere hvordan animasjonen spilles ut. Navnene på mange eiendommer i Burst Modulen er den samme som egenskapene i Form modul. Imidlertid utfører disse egenskapene svært forskjellige oppgaver i dette tilfellet.

De venstre og Ikke sant Egenskaper bestemmer begynnelsesposisjonen av bursten i stedet for partikler inne i den. På samme måte, x og y egenskaper bestemmer skiftet av hele sprengningen i stedet for individuelle partikler.

Radius av sirkelen dannet av alle de briste partiklene styres av radius eiendom. Dette er veldig forskjellig fra radius Egenskap av individuelle former, som bestemmer størrelsen på disse figurene. I tilfelle av en brast, bestemmer radiusen hvor mye lenger fra hverandre de enkelte former i det kommer til å være.

Antallet former eller partikler i en enkelt bris kan spesifiseres ved hjelp av telle eiendom. Som standard vil det være fem partikler i hver brast du lager. Alle disse partiklene er jevnt fordelt over bristens omkrets. For eksempel, hvis det er fire partikler, blir de plassert 90 grader til hverandre. Hvis det er tre partikler, blir de plassert på 120 grader.

Hvis du ikke vil at de briste partiklene skal dekke hele 360 ​​grader, kan du spesifisere delen som skal dekkes ved hjelp av grad eiendom. Enhver verdi over 0 er gyldig for denne eiendommen. Det angitte antall grader vil bli jevnt fordelt mellom alle partiklene. Hvis graden er over 360, kan figurene overlappe.

Vinkelen spesifisert ved hjelp av vinkel Egenskapen bestemmer vinkelen på hele utbruddet. I dette tilfellet roteres ikke enkelte partikler rundt sitt eget senter, men rundt senterets midtpunkt. Dette ligner hvordan jorden dreier seg rundt solen, som er forskjellig fra jordens rotasjon på sin egen akse.

De skala Egenskapen skalerer verdien av alle fysiske egenskaper av brist og i sin tur individuelle former. På samme måte som andre burstegenskaper, vil alle former i den bli skalert samtidig. Innstilling av utbrudd skala til 3 vil øke radiusen til hele utbruddet samt størrelsen på individuelle former med 3.

I følgende kodestykke lager vi fem forskjellige utbrudd ved hjelp av egenskapene vi nettopp har diskutert.

var burstA = ny mojs.Burst (telle: 20); var burstB = ny mojs.Burst (vinkel: 0: 360, skala: 1: 2, radius: 10); var burstC = ny mojs.Burst (vinkel: 0: 360, skala: 1: 2, radius: 10: 100); var burstD = ny mojs.Burst (grad: 180, radiusX: 10, vinkel: -90, skala: 1: 2, radius: 10: 100); var burstE = ny mojs.Burst (telle: 20, grad: 3600);

Du kan se det burstA og Bürste bare forskjellig i antall grader som de må dekke. Siden partiklene i burstA må dekke 360 ​​grader (standardverdien), de er plassert 360/20 = 18 grader fra hverandre. På den annen side, partiklene i Bürste er plassert 3600/20 = 180 grader fra hverandre. Fra 0 begynner den første partikkelen til 0 grader, og den neste er plassert ved 180 grader. 

Den tredje partikkelen plasseres deretter 360 grader, som i utgangspunktet er lik 0 grader. Den fjerde partikkelen blir da plassert på 540 grader, men det er i utgangspunktet lik 180 grader. Med andre ord, er alle de ulige nummererte partiklene plassert i 0 grader, og alle jevne tallpartiklene plasseres ved 180 grader. Til slutt ser du bare to partikler fordi alle andre overlapper de to første.

Det er viktig å huske at du ikke direkte kan styre varighet, forsinkelse eller lettelse funksjonen av burst animasjoner. Modulen bestemmer alle disse verdiene automatisk basert på verdiene til ulike barn som blir animert.

Manipulering av individuelle bristpartikler

Så langt i denne opplæringen hadde alle partiklene i en brast samme animasjon brukt på dem. Deres vinkel, skala, radius og posisjon er endret med samme verdi. Videre var vi ikke i stand til å kontrollere varigheten og forsinkelsen til de enkelte partiklene eller bristen som helhet. The mojs Burst Modulen har ikke et sett med egenskaper som direkte kan endre alle disse verdiene. Imidlertid kan vi angi animasjonsverdien for individuelle partikler, som igjen påvirker burstanimasjonen.

Alle partiklene i en burst-animasjon anses å være barn av originalen Burst gjenstand. Derfor tillater mojs oss å kontrollere animasjonen av individuelle bristpartikler ved hjelp av en barn eiendom, som aksepterer et objekt som dets verdi. Du kan bruke alle ShapeSwirl eiendommer bortsett fra x og y inne i barnobjektet. Dette er fornuftig fordi de enkelte partiklene i en burstanimasjon må vises i visse posisjoner, og slik at vi kan tilfeldigvis endre plasseringen av individuelle partikler, vil endre konfigurasjonen.

Eventuelle barnverdier som du ikke angir, vil bli satt til standard gitt av ShapeSwirl modul. I det følgende eksemplet animerer vi 20 forskjellige linjer av vår utbredt animasjon. Denne gangen, den vinkel Egenskapen er satt på individuelle partikler i stedet for Burst objekt slik at bare linjene roterer rundt senteret i stedet for hele objektet. Som vi lærte i den forrige opplæringen, ble alle ShapeSwirl objekter skal skille fra 1 til 0 som standard. Derfor endrer linjens lengder fra 40 til 0 i animasjonen.

var burstA = ny mojs.Burst (telle: 20, barn: form: 'linje', slag: 'svart', radius: 20, vinkel: 0: 180);

Som jeg nevnte tidligere, kan vi animere alle ShapeSwirl egenskaper inne i burst animasjoner. Hvert barn i animasjonen kan ha sitt eget sett med egenskaper. Hvis bare en verdi er gitt, blir den brukt på alle barnpartiklene. Hvis verdiene er gitt som en matrise, vil de bli anvendt i rekkefølge, en partikkel av gangen.

Her er JavaScript-koden for å lage fem forskjellige brast animasjoner ved hjelp av alle konseptene vi har lært så langt.

var burstA = ny mojs.Burst (telle: 20, vinkel: 0: 180, radius: 0: 100, barn: form: "polygon", slag: "svart", radius: 20, vinkel: 0: 360, varighet: 4000); var burstB = ny mojs.Burst (telle: 20, vinkel: 0: 180, radius: 0: 100, barn: form: "polygon", fyll: ["gul", "cyan" oransje "], slag:" svart ", radius: 20, skala: 1: 2, varighet: 2000, isShowEnd: false); var burstC = ny mojs.Burst (telle: 20, vinkel: 0: -180, radius: 0: 100, barn: form: "sirkel", fyll: ["rød", "svart" "blå"], radius: 10: "stagger (5, 1)"); var burstD = ny mojs.Burst (tall: 6, radius: 0: 100, barn: form: "sirkel", fyll: ["rødt", "gul", "blå"], skala: 1 : "rand (1, 10)", isShowEnd: false); var burstE = ny mojs.Burst (tall: 6, radius: 0: 100, barn: form: "sirkel", fyll: ["rødt", "gul", "blå"] ", skala: 1:" rand (1, 10) ") deretter (vinkel: 0: 360, radius: 100: 0, skala: 1: 0);

I den første burst animasjonen, den vinkel påføres direkte på Burst objekt roterer hele gruppen rundt sentrum av burst-objektet. Imidlertid vinkel Brukes inne i barnegenskapen roterer alle trekanter rundt sine egne sentre. Vi har også bremset brist animasjonen ved å endre animasjonsvarigheten for alle barna til 4000ms.

I den andre burstanimasjonen blir fargen på alle trekanter tatt fra gruppen som er sendt til fylle eiendom. Vi har kun angitt tre fyllfarger, men totalt antall trekanter er 20. I slike tilfeller fortsetter mojs å sykle gjennom arrayelementene og fyller trekantene med de samme tre farger igjen og igjen.

I den fjerde animasjonen bruker vi rand strenger, som vi lærte om i den forrige opplæringen, å tilfeldig velge en skaleringsverdi for alle barnpartiklene. Vi setter også verdien av isShowEnd eiendom til falsk for å skjule partiklene på slutten av animasjonen.

I den femte animasjonen bruker vi deretter() Metode fra veiledningsmodulen for å spille av en annen animasjonssekvens etter at den første er ferdig.

Siste tanker

Målet med denne serien var å få deg kjent med grunnleggende om mojs animasjonsbiblioteket. Hver oppgave fokuserer på en enkeltmodul og hvordan du kan bruke egenskapene i den modulen til å lage grunnleggende animasjoner. 

Denne siste opplæringen brukte konseptene fra de tidligere opplæringsprogrammene for å lage litt mer kompliserte animasjoner. Mojs er et veldig kraftig animasjonsbibliotek, og de endelige resultatene du får, er avhengige av hvor kreativ du kan få med alle egenskapene, så fortsett å eksperimentere.

Hvis det er noe du vil at jeg skal klargjøre i denne opplæringen, vennligst gi meg beskjed i kommentarene.