Optimering af Flash CS3 Particle System Animation
Nu hvor vi har FlashR CS3 partikelsystem snefald animation fungerer nøjagtigt som vi vil, det er tid til at optimere snescene-programkoden. Hvis du testede den animation, som vi har skrevet i de foregående tutorials, bemærkede du sandsynligvis, at animationen efter en tid har en tendens til at opgave computerens ressourcer. I denne tutorial vil vi se på et par måder at gøre animationen mere effektiv på.

Som koden står nu, bruger vi en begivenhedslytter til at lytte til hver nye ramme i animationen. Med hver nye ramme opretter snefnugfunktionen (begivenhedshåndterer) en ny snefnug og tilføjer denne snefnug til Flash-displaylisten. Dernæst bruger vi Math.random () til at randomisere placeringen og alfaegenskaberne for dette snefnug. Vi bruger en anden begivenhedslytter til at kalde snefaldsfunktionen igen med hver nye ramme. Snefaldfunktionen kontrollerer for at se, om snefnuget er bevæget sig ud over højre eller nederste kant af scenen. I så fald fjerner vi den anden begivenhedslytter, der gentager snefaldsfunktionen. Dette får den ene snefnug til at stoppe med at falde, mens den anden snefnug fortsætter med at falde. Gentagelsen af ​​snefnugfunktionen skaber snefaldsanimationen. Hvad vi skal gøre nu er at ændre koden, så den er mere effektiv.

Metode én

Den første metode kræver tilføjelse af kun en linje med kode til vores program. Vi har allerede en betinget erklæring inde i snefaldsfunktionen, der kontrollerer om snefnug er gået ud over scenen og i bekræftende fald fjerner begivenhedslytteren og forhindrer snefnug i at falde.
Snefnug holder op med at bevæge sig, men det er stadig synligt i bunden af ​​scenen. Fordi det stadig er synligt og stadig på displaylisten, bruger Flash stadig ressourcer på dette snefnug. Hvis vi fjerner snefnug fra displaylisten, frigør det ressourcerne, og animationen bliver mere effektiv. For at fjerne de snefnug, som vi ikke længere har brug for på displaylisten, kan vi tilføje en removeChild-kode til den betingede erklæring.

if (_Snowflake.y> 370 || _Snowflake.x> 550)
{
stage.removeEventListener (Event.ENTER_FRAME, snefald);
removeChild (_Snowflake);
}
andet
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }


Når du tester din film, forsvinder snefnugene, når de når højre eller nederste kant af scenen, og animationen er mere effektiv.

Næste →

Copyright 2018 Adobe Systems Incorporated. Alle rettigheder forbeholdes. Adobe-produktskærmbilleder (r) genudtrykt med tilladelse 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, fyrværkeri, Bidrage, Captivate, Flash Catalyst og Flash Paper er / er enten [a] registreret varemærke [er] eller et varemærke [s] fra Adobe Systems Incorporated i USA og / eller andre lande.


Video Instruktioner: Flash/Actionscript webudvikling Del 3 - Arrays og loops (på dansk) (April 2024).