Optimizarea Flash CS3 Particle Animation System
Acum că avem blițulR Animația caderii de zăpadă a sistemului de particule CS3 funcționează exact așa cum ne dorim, este timpul să optimizăm codul programului scenelor de zăpadă. Dacă ați testat animația pe care am scris-o în tutorialele anterioare, probabil că ați observat că, după un timp, animația tinde să-și îndeplinească resursele computerului. În acest tutorial, vom analiza câteva moduri de a face animația mai eficientă.

Pe măsură ce codul stă acum, folosim un ascultător de evenimente pentru a asculta fiecare nou cadru al animației. Cu fiecare nou cadru, funcția de fulg de zăpadă (gestionator de evenimente) creează un nou fulg de zăpadă și adaugă acel fulg de zăpadă la lista de afișare Flash. În continuare, folosim Math.random () pentru a randomiza poziția și proprietățile alfa ale acestui fulg de zăpadă. Folosim un al doilea eveniment ascultător pentru a apela funcția de ninsori, din nou cu fiecare nou cadru. Funcția caderii de zăpadă verifică dacă fulgul de zăpadă s-a deplasat dincolo de marginea dreaptă sau de jos a scenei. Dacă da, eliminăm cel de-al doilea eveniment ascultător care repetă funcția de ninsori. Aceasta face ca un fulg de zăpadă să înceteze să cadă, în timp ce ceilalți fulgi de zăpadă continuă să cadă. Repetarea funcției fulgului de zăpadă creează animația înzăpezirilor. Ce trebuie să facem acum este să schimbăm codul, astfel încât să fie mai eficient.

Metoda 1

Prima metodă necesită adăugarea la programul nostru a unei linii de cod. Avem deja o declarație condiționată în interiorul funcției de zăpadă care verifică pentru a vedea dacă fulgul de zăpadă a trecut dincolo de scenă și, în caz afirmativ, înlătură ascultătorul de eveniment și oprește căderea fulgului de zăpadă.
Fulgul de zăpadă nu se mai mișcă, dar este încă vizibil în partea de jos a scenei. Deoarece este încă vizibil și este încă pe lista de afișare, Flash cheltuie în continuare resurse pentru acest fulg de zăpadă. Dacă eliminăm fulgii de zăpadă din lista de afișări, acesta va elibera resursele și animația va fi mai eficientă. Pentru a elimina fulgii de zăpadă de care nu mai avem nevoie pe afișaj, putem adăuga un cod removeChild la declarația condiționată.

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


Când testezi filmul, fulgii de zăpadă dispar pe măsură ce ajung la marginea dreaptă sau de jos a scenei, iar animația este mai eficientă.

Următorul →

Copyright 2018 Adobe Systems Incorporated. Toate drepturile rezervate. Captura (ecranele) de produs Adobe tipărite cu permisiunea Adobe Systems Incorporated. Adobe, Photoshop, Photoshop Album, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Elementele Premiere, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst și Flash Paper este / sunt [o] marcă înregistrată [sau] sau o marcă comercială a Adobe Systems Incorporated în Statele Unite și / sau în alte țări.