Flash CS3 -hiukkasjärjestelmän animaation optimointi
Nyt kun meillä on FlashR CS3-hiukkasjärjestelmän lumisateiden animaatio toimii täsmälleen kuten haluamme, on aika optimoida lumenäkymän ohjelmakoodi. Jos testasit animaatioita, jotka olemme kirjoittaneet edellisissä opetusohjelmissa, huomasit todennäköisesti, että ajan kuluttua animaatiolla on taipumus kohdistaa tietokoneesi resursseja. Tässä opetusohjelmassa tarkastellaan muutamia tapoja tehdä animaatio tehokkaammaksi.

Koodin ollessa nyt kuuntelemme jokaista uutta animaation kehystä yhdellä tapahtumankäyttäjällä. Jokaisella uudella kehyksellä lumihiutaletoiminto (tapahtumakäsittelijä) luo uuden lumihiutaleen ja lisää sen lumihiutaleen Flash-näyttöluetteloon. Seuraavaksi käytämme Math.random () -sovellusta satunnaistamaan tämän lumihiutaleen sijainti ja alfa-ominaisuudet. Käytämme toista tapahtumakuuntelijaa soittamaan lumisadetoiminto, jokaisen uuden kehyksen yhteydessä. Lumisadetoiminto tarkistaa onko lumihiutale siirtynyt lavan oikean tai alareunan yli. Jos näin on, poistamme toisen tapahtumakuuntelijan, joka toistaa lumisadetoiminnon. Tämä aiheuttaa sen, että yksi lumihiutale lopettaa putoamisen, kun taas toinen lumihiutale laskee edelleen. Lumihiutaletoiminnon toisto luo lumisadeanimaation. Meidän on nyt muutettava koodia, jotta se olisi tehokkaampi.

Menetelmä yksi

Ensimmäinen menetelmä vaatii vain yhden koodirivin lisäämisen ohjelmaan. Meillä on jo ehdollista lausumaa lumisateiden sisällä, joka tarkistaa, onko lumihiutale mennyt yli lavan, ja jos on, poistaa tapahtuman kuuntelijan ja estää lumihiutaleen putoamisen.
Lumihiutale lakkaa liikkumasta, mutta se on silti nähtävissä lavan alaosassa. Koska Flash on edelleen näkyvissä ja edelleen luettelossa, Flash käyttää silti resursseja tähän lumihiutaleeseen. Jos poistamme lumihiutaleen näyttöluettelosta, se vapauttaa resursseja ja animaatio on tehokkaampaa. Voit poistaa lumihiutaleet, joita emme enää tarvitse näyttöluettelossa, lisäämällä ehdollisen käskyyn removeChild-koodin.

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


Kun testaat elokuvaa, lumihiutaleet katoavat, kun ne saavuttavat lavan oikean tai alareunan ja animaatio on tehokkaampaa.

Seuraava →

Tekijänoikeus 2018 Adobe Systems Incorporated. Kaikki oikeudet pidätetään. Adobe-tuotteen näyttökuva (t) uusitaan Adobe Systems Incorporatedin luvalla. Adobe, Photoshop, Photoshop Album, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Ilotulitteet, Contribute, Captivate, Flash Catalyst ja Flash Paper on / on joko [a] rekisteröity tavaramerkki (t) tai Adobe Systems Incorporatedin tavaramerkki (t) Yhdysvalloissa ja / tai muissa maissa.


Video-Ohjeita: ADOBE FLASH CS3 PROFESSIONAL class-6 (Saattaa 2024).