Optimalisering av Flash CS3 Particle System Animation
Nå som vi har blitsenR CS3 partikkelsystem snøfallanimasjon fungerer akkurat som vi vil, det er på tide å optimalisere snøscene-programkoden. Hvis du testet animasjonen som vi har skrevet i forrige veiledninger, la du sannsynligvis merke til at animasjonen etter en tid har en tendens til å oppgave datamaskinens ressurser. I denne opplæringen skal vi se på noen måter å gjøre animasjonen mer effektiv.

Slik koden står nå, bruker vi en hendelseslytter for å lytte til hver nye ramme av animasjonen. Med hver nye ramme oppretter snøfnuggfunksjonen (hendelsesbehandler) en ny snøfnugg og legger til den snøfnugg til Flash-displaylisten. Deretter bruker vi Math.random () for å randomisere posisjonen og alfaegenskapene til dette snøfnugget. Vi bruker en andre begivenhetslytter for å kalle snøfallfunksjonen, igjen med hver nye ramme. Snøfallfunksjonen sjekker om snøfnugg har beveget seg utover høyre eller nedre kant av scenen. I så fall fjerner vi den andre begivenhetslytteren som gjentar snøfallfunksjonen. Dette fører til at den ene snøfnugg slutter å falle, mens den andre snøfnugg fortsetter å falle. Gjentakelsen av snøfnuggfunksjonen skaper snøfallanimasjonen. Det vi trenger å gjøre nå er å endre koden slik at den blir mer effektiv.

Metode én

Den første metoden krever at det bare legges en linje med kode til programmet vårt. Vi har allerede en betinget uttalelse inne i snøfallfunksjonen som sjekker om snøfnugg har gått utover scenen, og i så fall fjerner Event Listener og stopper snøfnugg fra å falle.
Snøfnugg slutter å bevege seg, men det er fremdeles synlig i bunnen av scenen. Fordi det fremdeles er synlig og fremdeles er på visningslisten, bruker Flash fortsatt ressurser på denne snøfnugg. Hvis vi fjerner snøfnugg fra visningslisten, frigjør det ressursene og animasjonen blir mer effektiv. For å fjerne snøfnuggene som vi ikke lenger trenger på visningslisten, kan vi legge til en removeChild-kode i betingelseserklæringen.

if (_Snowflake.y> 370 || _Snowflake.x> 550)
{
scene.removeEventListener (Event.ENTER_FRAME, snøfall);
removeChild (_Snowflake);
}
ellers
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }


Når du tester filmen din, forsvinner snøfnuggene når de når høyre eller nedre kant av scenen og animasjonen er mer effektiv.

Neste →

Copyright 2018 Adobe Systems Incorporated. Alle rettigheter forbeholdt. Adobes produktskjermbilder er skrevet ut på nytt med tillatelse fra Adobe Systems Incorporated. Adobe, Photoshop, Photoshop Album, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fyrverkeri, Bidra, Captivate, Flash Catalyst og Flash Paper er / er enten [a] registrert varemerke [s] eller et varemerke [s] fra Adobe Systems Incorporated i USA og / eller andre land.