Opprette ActionScripted Animasjon og Interaction

Creating ActionScripted animasjon og interaksjon
Del
Del
Del
Del

Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av.

Action kan være et flott verktøy for å forbedre dine animasjoner. I denne opplæringen vil vi se på det grunnleggende ActionScripted animasjon. Vi vil ta en titt på hvordan du faktisk flytte et filmklipp ved hjelp av Actionscript, ulike former for kollisjoner og hvordan du bruker disse teknikkene for å legge til noen interaksjon med dine Flash-filmer. La oss komme i gang



Trinn 1 - Sette opp Our File

La oss begynne med å lage en ny Flash movie (Actionscript 3.0). Bruk egenskapspanelet til å angi dimensjonene til 600px X 350 piksler, med en bildefrekvens på 30 bilder i sekundet. Vi skal skrive vår kode i hovedtidslinjen for å holde ting enkelt. Hvis du allerede vet hvordan de skal organisere koden din i klasser, bør det ikke være vanskelig å bruke denne kunnskapen til denne opplæringen

Trinn 2 -. Tegning Vår Bakgrunn

Før vi begynner å skrive vår Action trenger vi et par grafikk for å arbeide med. Vi vil holde dem ganske grunnleggende siden vi er mest interessert i Action dag

Start med å døpe vår lag.; Dobbeltklikk på layername og endre navnet til "bakgrunn".

Vi kommer til å bruke rektangel verktøyet (r) for å tegne et rektangel. Ikke bekymre deg om størrelse eller farge ennå
Trinn 3 -. Endring av størrelsen Vår Bakgrunn

Dobbeltklikk på rektangelet for å velge fyll og grensen. Åpne egenskapene ruten slik at du kan justere dimensjonene på rektangelet.

Endre bredden og høyden til de samme verdiene som bredden og høyden på scenen og sørge for at x og y posisjon er satt til 0. Nå vår rektangel passer perfekt til vår scene

Trinn 4 -. Justere Vår bakgrunnsfarge

Velg fyllfargen på rektangelet ved å klikke på det en gang. Vi kommer til å gjøre det ser litt mer interessant ved å legge en gradient til det.

Med rektangelet valgt, åpne farge panel og endre fyllfargen fra "solid" til "radial". Rektangelet er fill har nå blitt endret til en radial gradient. Du kan endre fargene på overgang ved å klikke på de små fargeprøvene i gradient bar i fargepanelet. Dobbeltklikk på venstre kartet for å endre den til en blå farge. Gjør det samme for retten kartet for å endre den til en lignende, men mørkere blå.

For å gjøre gradient litt mer subtil vil vi justere gradient litt hjelp av gradient transform verktøyet. Velg gradient forvandle verktøy (f) og klikk på gradient å velge det.

gradient forvandle verktøyet viser flere håndtak. En i midten for å flytte hele gradient, og tre på kanten. En for å rotere gradient, ett for skalering av gradient og en for å komprimere graderingen.

Først roter gradient slik at dens akse er vertikal. Deretter komprimere gradienten til en oval slik at den bedre samsvarer med formen på vår rektangel.

For å avslutte det hele, skalere gradient opp til bare hjørnene av vår rektangel ser mørkere enn midten (dette trinnet er lettere hvis du zoomer ut fra scenen litt). Du bør ende opp med noe som ligner på bildet under:

Trinn 5 - The Ball

Det neste grafiske vi trenger er filmklippet vi kommer til å animere. Vi kommer til å bruke en sirkel.

Lag et nytt lag for filmklipp og tegne en sirkel. Velg sirkelen og trykke F8 for å få opp "konvertere til symbolet" -menyen.

navn Movie Clip "ball_mc", sørg registreringspunktet er satt til sentrum og kryss av for "Export for Action" er merket.

Når du klikker ok, vil Flash gi deg advarselen nedenfor. Dette er ikke noe problem. Flash er på utkikk etter en egendefinert klasse som heter "ball_mc". Men siden vi ikke har skrevet noen slik klasse, kan Flash ikke finne den, og advarer oss vil det automatisk generere en når vi eksporterer vår fil. Dette er greit, vi bare merket "Export for Action" boksen, slik at vi kan dynamisk plassere vår filmklipp bruker Actionscript.

Slett filmklipp fra scenen, vi skal plassere den ved hjelp av Actionscript senere.

Trinn 6 - Plassere en Movie Clip hjelp Action

Til slutt, på tide å begynne å skrive noen kode! Vi skal jobbe mot vårt endelige resultat i en rekke tiltak for å forklare noen grunnleggende begreper. Vi vil fortsette å gå tilbake til å legge til et par linjer til vi når det endelige resultatet.

La oss starte med å se på hvordan du bruker Action å ta et filmklipp av vårt bibliotek og plassere den på scenen.

Hvis du ser på koden under, vil du legge merke til tre separate trinn. Vi skaper en variabel kalt "ball" å holde en referanse til den nyopprettede forekomst av våre filmklipp. Neste vi bruke "addChild" metode for å legge vår ball til displaylist. Hvis du skulle glemme det siste trinnet, vil du opprette en forekomst av ball_mc Movie Clip, men du vil ikke være i stand til å se det
Var ball: MovieClip; ball = new ball_mc (); addChild (ball).;

Hvis vi eksportere Flash movie nå, vil vi se at ballen har blitt plassert i øverste venstre hjørne av Flash movie. Vi har ikke spesifisert en posisjon slik det er plassert på standard x, y posisjon på 0, 0.

Trinn 7 - Filmklippegenskaper

Øverst i venstre hjørne av skjermen er en ganske dum stilling for vår ball, kan vi bare se en fjerdedel av filmklipp! Heldigvis for oss, har et filmklipp en rekke eiendommer vi kan endre.

De egenskapene vi ønsker å endre akkurat nå er x og y posisjon av filmklipp. Sjekk ut kodeeksemplet nedenfor for å se hvordan vi kan styre plasseringen av vår filmklipp:

(Ekstra linjer: 5,6)
Var ball: MovieClip; ball = new ball_mc (); addChild ( ball); ball.x = 325; ball.y = 150;

Hvis du eksporterer filmen nå, vil du se at Movie Clip er ikke lenger i øvre venstre hjørne av skjermen, men på x, y koordinerer vi spesifisert. Filmklipp har mange andre interessante egenskaper som du kan stille inn. Du kan sjekke hjelpefilene for en liste over disse egenskapene.

Ved å endre filmklipp x og y egenskaper gjentatte ganger over en periode, kan vi gjøre det flytte! La oss ta en titt på hvordan du gjør det

Trinn 8 -. Flytte Vår filmklipp

For å flytte vår MovieClip vil vi sette opp en "eventListener" som utfører en funksjon hver gang "ENTER_FRAME" event branner. I vårt tilfelle, omtrent 30 ganger i sekundet.

Hver gang de "ENTER_FRAME" event branner, vår "eventListener" vil gjennomføre vår mover funksjon som vil trekke fra tre fra våre MovieClip sin x og y egenskaper, og dermed får den til å bevege seg .

(Ekstra linjer: 8-13)
Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; addEventListener (Hendelses .ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {ball.x - = 3; ball.y - = 3;}

Hvis du eksporterer filmen nå vil du se filmklipp beveger seg bort mot kanten av Flash-filmen på en kontinuerlig hastighet. Siden vi gjør ingenting for å stoppe den eller endre den retning det vil fortsette å bevege seg i den retningen på ubestemt tid. Jeg vil si det er på tide vi lagt noen grenser

Trinn 9 -. Finne våre grenser

Hvis vi ønsker å stoppe vår filmklipp fra å flytte til den forsvinner, må vi sette noen grenser for det. Kantene våre Flash movie synes perfekt for jobben, så la oss sette opp noen variabler for våre grenser.

Vi vet allerede y posisjonen til toppen av scenen er 0 og x posisjonen til høyre for vår scene er også 0. variabler for disse grensene er derfor lett å stille inn. Vi vet at vår scene er 600 piksler bred, men i stedet for bare å sette vår rett grensen til 600 piksler, kommer vi til å bruke Actionscript for å avgjøre hvor bred scenen vår er. Vi vil sette bunnen grensen på samme måte ved å be om høyden på scenen ved hjelp av Action

(Ekstra linjer: 1-4)
Var topp:. Antall = 0; Var akkurat: Number = stage.stageWidth; Var bottom: Number = stage.stageHeight; Var venstre: Antall = 0; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {ball.x - = 3; ball.y- = 3;}

Akkurat nå bruker vi kantene på vår scene som grenser. I dine egne prosjekter kan du stille dine grenser annerledes, du kan opprette et nytt rektangel filmklipp for eksempel og bruke sin x, y posisjon, bredde og høyde for å beregne dine grenser

Trinn 10 -. Collision Detection

Vi har funnet ut hva våre grenser er og lagres denne informasjonen i fire variabler. Mind du, har vi ennå ikke fortalt vår mover funksjon hva de skal gjøre med denne informasjonen.

Siden vår Movie Clip er helt rund, kan vi lett finne ut når den krysser en grense. For eksempel når det er x posisjon (det midtpunkt) pluss halve bredden er lik eller overstiger x posisjonen til høyre grense, vi vet det er krysset denne grensen, og vi bør snu.

For å gjøre det vi kommer til å lagre modifikatorer til sin x og y egenskaper i et sett av variabler slik at vi lett kan endre dem. Vi vil også legge til et sett med "hvis" uttalelser til mover funksjon for å sjekke for grense kollisjoner

(Ekstra linjer: 6,7 + 20-36)
Var topp.: Number = 0; Var akkurat: Number = stage.stageWidth; Var bunn: Number = stage.stageHeight; Var venstre: Antall = 0; Var vx: Number = 3; Var vy: Number = 3; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {ball.x- = vx; ball.y- = vy; if (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}

Hvis du eksporterer Flash filmen nå, vil du se at klipperen funksjonen sjekker kontinuerlig for å se om ballen kolliderer med noen av de grensene vi har satt. Hvis det oppstår en kollisjon ballen er forskjøvet litt for å sørge for at den holder seg innenfor grensene vi har satt, og dens retning reverseres:



Trinn 11 - Friksjons

Selv selv om vi har satt opp noen grenser for å sørge for at ballen ikke går flyr av scenen, ballen aldri stopper å bevege seg.

Hvis du hente et objekt fra skrivebordet, for eksempel datamaskinen musen og gi den et lite dytt, det kommer til å slutte å bevege seg ganske raskt etter at du slutter å bruke makt. Friksjon mellom skrivebordet og musen slites ned dens hastighet før musen står stille igjen. Vi kan etterligne denne effekten i Action ganske enkelt.

Vi vil opprette en ny variabel kalt "friksjon", og gi den en verdi litt mindre enn en, en verdi på 0,98 fungerer ganske bra. Nå hver gang vi kjører klipperen funksjon, vil vi mangedoble vår vx og vy variabler med vår friksjon variabel, mink dem litt

(Ekstra linjer: 8 + 21,22).
Var topp: Number = 0; Var akkurat: Number = stage.stageWidth; Var bunn: Number = stage.stageHeight; Var venstre: Antall = 0; Var vx: Number = 3; Var vy: Number = 3; Var friksjon: Number = 0,98; Var ball : MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {vx * = friksjon; vy * = friksjon; ball.x- = vx; ball.y- = vy; if (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}

Hvis du eksporterer filen nå, vil du se at friksjon slites raskt ned vår ballens hastighet inntil det kommer til å stå stille. Friksjon bidrar til å gjøre animasjonen føler seg mer "ekte". Super Mario for eksempel ikke kommer til en full stopp umiddelbart når du gir slipp på kontrollene. I stedet glir han på et øyeblikk før friksjon bringer ham til å stå stille.

Friction er bare en av måtene du kan påvirke din animasjon ved å legge til en endrings til x og y hastighet på objektet. Du kan simulere tyngdekraften ved å legge til y hastighet eller vind ved å legge til eller trekke til eller fra x og y hastighet avhengig av ønsket vindretning

Trinn 12 -. The Arrow

Nå som Vi har sett hvordan du plasserer og flytte et filmklipp bruker Action det er tid for noen interaksjon

Tegn en pil med en kombinasjon av rektangelet, omforme og line verktøy.

Trinn 13 - Sette opp Arrow Movie Clip

Vi kommer til å snu pilen til et filmklipp med litt forskjellige innstillinger enn vår ball filmklipp.

Velg pilen, traff F8 for å få opp "konvertere til symbolet" vindu og navngi pilen Movie Clip "arrow_mc". Forsikre deg om at "Export for Action" boksen er merket som før, men denne gangen satt registreringspunktet til midten venstre posisjon som i skjermbildet.

En Movie Clip roterer rundt sin registreringspunktet, og vi ønsker å gjøre at våre pil roterer rundt sin spiss

Slett pilen Movie Clip fra scenen, vi skal plassere den med Actionscript, akkurat som ballen

Trinn 14 -.. Plassering og Flytte Pil

Vi vil plassere pilen på scenen på samme måte som vår ball filmklipp. Vi vil kalle det pekeren.

Siden vi bare ønsker å sikre at våre pekeren er alltid i samme posisjon som vår musepekeren vi trenger bare to linjer med kode. Hver gang vår mover funksjon utfører vi vil oppdatere x, y posisjonen vår pekeren til x, y posisjonen vår musepekeren

(Ekstra linjer: 11-15 + 21,22). Anmeldelser Var friksjon: Number = 0,98; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; Var spisser: MovieClip = new arrow_mc (); addChild (pekeren); pointer.x = mouseX; pointer.y = mousey; Mouse.hide (); addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {pointer.x = mouseX; pointer.y = mousey; vx * = friksjon; vy * = friksjon; ball.x- = vx; ball.y- = vy; if (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}
Trinn 15 - Hiding musepekeren

La oss gjemme vår vanlige musepekeren slik at vi bare kan se vår pekeren MovieClip mens samspill med våre Flash movie

(Ekstra linje.: 15)
Var friksjon: Number = 0,98; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; Var spisser: MovieClip = new arrow_mc (); addChild (pekeren); pointer.x = mouseX; pointer.y = mousey; Mouse.hide (); addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {pointer.x = mouseX; pointer.y = mousey; vx * = friksjon; vy * = friksjon; ball.x- = vx; ball.y- = vy; if (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}
Trinn 16 - Finne vinkelen mellom Pointer og Ball

Vi har nå en peker som følger musen rundt, la oss sørge for at det faktisk peker på vår ball. For å gjøre dette må vi finne vinkelen mellom pekeren og ballen.

Vi kan bruke trigonometri til å beregne vår ønsket vinkel, men først vi må finne avstanden mellom pekeren og ballen langs x- og y-aksen. Enkelt nok vurderer vi vet begge sine posisjoner. La oss se på hvordan du beregner det først, så får vi legge det inn i vår kode
dx = mouseX - ball.x.; dy = mousey - ball.y;

Nå som vi har de nødvendige avstander, kan vi regne ut vinkelen i radianer. Radianer er standard enhet av vinkelmåling i matematikk. En perfekt sirkel er 360 grader eller PI * 2 radianer
dx = mouseX - ball.x.; dy = mousey - ball.y; ar = Math.atan2 (dy, dx);

Mens radianer er standard måleenhet for vinkler i matematikk, hvis vi ønsker å sette vår filmklipp rotasjons eiendom, må vi konvertere vinkelen til grader i stedet.

Trinn 17 - Konvertering radianer til grader

Konvertering radianer til grader eller vice versa er ganske enkel. I Action ville det se slik ut:

Degrees = Radianer * 180 /Math.PI;

radianer = Grader * Math.PI /180;

Trinn 18 - Putting alt sammen

Siden vi må rotere pekeren gang enten ballen eller musen beveger seg, vil vi plassere rotasjonskode på mover funksjon

(Ekstra linjer. 27 -29 + 34-38)
Var top: Antall = 0; Var akkurat: Number = stage.stageWidth; Var bunn: Number = stage.stageHeight; Var venstre: Antall = 0; Var vx: Number = 3; Div vy: Number = 3; Var friksjon: Number = 0,98; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; Var spisser: MovieClip = new arrow_mc ( ); addChild (pekeren); pointer.x = mouseX; pointer.y = mousey; Mouse.hide (); addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {var dx: Number; Var dy: Number; Var är: Antall pointer.x = mouseX; pointer.y = mousey; dx = mouseX - ball.x; dy = mousey - ball.y; ar = Math.atan2 (dy, dx); Var en: Number = ar * 180 /Math.PI; pointer.rotation = en; vx * = friksjon; vy * = friksjon; ball.x- = vx; ball.y- = vy; if (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}



Trinn 19 - Poking Ball

Ok, så vi fikk vår ball beveger seg, vi fikk vår pekeren beveger seg, vi fikk vår pekeren til å faktisk peke på ballen. Jeg tror det er på tide vi gjort noe skje når vi berører ballen.

Vi har allerede tatt en titt på distansebasert dueller. Når avstanden mellom vår ballens midt og en grense er mindre enn halve bredden av vår ball, vet vi en kollisjon oppstår. Dette fungerer ganske bra for perfekte sirkler, siden avstanden mellom deres midt og deres omkrets aldri endres. Dette betyr imidlertid ikke fungerer så bra for uregelmessige former.

La oss ta en titt på en annen metode for dueller, denne gangen vil vi bruke hitTest metoden. HitTest er en standard Action funksjon som kommer i to utgaver. De første, "hitTestObject" Sjekker om to objekter kolliderer ved å sjekke om deres boundingboxes (de tynne blå rektangler du ser rundt Filmklipp når du velger dem) er overlappende.

Denne metoden fungerer perfekt for rektangulære movieclips, men siden markeringsrammen er alltid rektangulær, er det ikke veldig nøyaktig for uregelmessig form eller ovaler.

Den andre metoden kontrollerer et punkt (x, y) posisjon mot en form. Mye mer nøyaktig for uregelmessig form, selv om det er ingen enkel måte å sjekke en uregelmessig form mot en annen. Det er perfekt for oss selv, har vi en ingen rektangulær form (vår ball) og ett poeng (tuppen av våre pil) som vi ønsker å sjekke opp mot hverandre. Så vi kjører "hitTestPoint ()" metoden i vårt mover funksjon mens levere vår ball filmklipp og x, y posisjonen vår pil som input. Metoden returnerer en boolsk (sann eller usann) verdi avhengig av hvorvidt en kollisjon skjer

(Ekstra linjer: 45-47)
Var top: Antall = 0; Var akkurat:. Antall = stage.stageWidth; Var bunn: Number = stage.stageHeight; Var venstre: Antall = 0; Var vx: Number = 3; Var vy: Number = 3; Var friksjon: Number = 0,98; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; Var spisser: MovieClip = new arrow_mc (); addChild (pekeren); pointer.x = mouseX; pointer.y = mousey; Mouse. hide (); addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {var dx: Number; Var dy: Number; Var är: Antall pointer.x = mouseX; pointer.y = mousey; dx = mouseX - ball.x; dy = mousey - ball.y; ar = Math.atan2 (dy, dx); Var en: Number = ar * 180 /Math.PI; pointer.rotation = en; vx * = friksjon; vy * = friksjon; ball.x- = vx; ball.y- = vy; if (ball.hitTestPoint (pointer.x, pointer.y, true)) {trace ('rote'); } If (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}

Hvis vi driver vår Flash movie nå, vil vi se at så snart tuppen av pilen berører ballen, starter Flash movie tracing ut "dytte" inn i utgangspanelet.

Trinn 20 - Flytting ballen Peker

Vi vet allerede vinkelen mellom ballen og pekeren og vi vet allerede når pekeren er poking ballen. Det er derfor et ganske lite skritt herfra til faktisk dytte ballen direkte bort fra pekeren.

Husk de vx og vy variabler vi bruker for å sette hastigheten for vår ball? Ved hjelp av sinus og cosinus kan vi endre disse to variablene til en verdi som fører til at ballen flyr bort fra pekeren i den retningen du rote. Vi tar cosinus til vinkelen og multiplisere det med et tall for å angi hastigheten langs x-aksen, gjør vi det samme med sinus av vinkelen for å sette en hastighet langs y-aksen. Jo flere du bruker til å formere cosinus eller sinus resultat, vil raskere ballen gå

(Ekstra linjer: 47,48)
Var topp.: Number = 0; Var akkurat: Number = stage.stageWidth; Var bottom: Number = stage.stageHeight; Var venstre: Antall = 0; Var vx: Number = 3; Var vy: Number = 3; Var friksjon: Number = 0,98; Var ball: MovieClip; ball = new ball_mc (); addChild (ball); ball.x = 325; ball.y = 150; Var spisser: MovieClip = new arrow_mc (); addChild (pekeren); pointer.x = mouseX; pointer.y = mousey; Mouse.hide (); addEventListener (Event.ENTER_FRAME, mover), funksjon mover (e: Hendelses): void {var dx: Number; Var dy: Number; Var är: Antall pointer.x = mouseX; pointer.y = mousey; dx = mouseX - ball.x; dy = mousey - ball.y; ar = Math.atan2 (dy, dx); Var en: Number = ar * 180 /Math.PI; pointer.rotation = en; vx * = friksjon; vy * = friksjon; ball.x- = vx; ball.y- = vy; if (ball.hitTestPoint (pointer.x, pointer.y, true)) {vx = Math.cos (ar) * 10; vy = tak i Math.sin (ar) * 10; } If (ball.x < venstre + ball.width /2) {ball.x = venstre + ball.width /2; vx * = - 1; } Else if (ball.x > rett - ball.width /2) {ball.x = høyre-ball.width /2; vx * = - 1; } If (ball.y < top + ball.height /2) {ball.y = top + ball.height /2; vy * = - 1; } Else if (ball.y > bunn - ball.height /2) {ball.y = bottom-ball.height /2; vy * = - 1; }}
Konklusjon

Dette er bare det grunnleggende ActionScripted animasjon, men jeg håper de har gitt deg noen ideer om hvordan å anvende denne kunnskapen i egne prosjekter. Ved å utvide på disse teknikkene kan du lage mange interessante og nyttige effekter for Flash-prosjekter. Takk for lesing!



Previous:
Next Page: