Animatie van Flash CS3-deeltjessysteem optimaliseren
Nu dat we de Flash hebbenR CS3-deeltje systeem sneeuwval animatie werkt precies zoals we willen, het is tijd om de programmacode van de sneeuwscène te optimaliseren. Als je de animatie hebt getest die we in de vorige tutorials hebben geschreven, heb je waarschijnlijk gemerkt dat de animatie na een tijdje de neiging heeft om de bronnen van je computer te belasten. In deze tutorial zullen we een paar manieren bekijken om de animatie efficiënter te maken.

Zoals de code er nu uitziet, gebruiken we één Event Listener om te luisteren naar elk nieuw frame van de animatie. Bij elk nieuw frame maakt de sneeuwvlokfunctie (gebeurtenishandler) een nieuwe sneeuwvlok en voegt die sneeuwvlok toe aan de Flash-weergavelijst. Vervolgens gebruiken we Math.random () om de positie- en alpha-eigenschappen van deze sneeuwvlok willekeurig te maken. We gebruiken een tweede Event Listener om de sneeuwvalfunctie aan te roepen, opnieuw bij elk nieuw frame. De sneeuwvalfunctie controleert of de sneeuwvlok voorbij de rechter- of onderrand van het podium is gekomen. Als dit het geval is, verwijderen we de tweede gebeurtenislistener die de sneeuwvalfunctie herhaalt. Dit zorgt ervoor dat de ene sneeuwvlok stopt met vallen, terwijl de andere sneeuwvlokken blijven vallen. De herhaling van de sneeuwvlokfunctie creëert de sneeuwvalanimatie. Wat we nu moeten doen, is de code wijzigen zodat deze efficiënter is.

Methode een

De eerste methode vereist de toevoeging van slechts één regel code aan ons programma. We hebben al een voorwaardelijke verklaring in de sneeuwvalfunctie die controleert of de sneeuwvlok voorbij het podium is gegaan en, als dat het geval is, de gebeurtenisluisteraar verwijdert en de sneeuwvlok stopt met vallen.
De sneeuwvlok stopt met bewegen maar is nog steeds zichtbaar aan de onderkant van het podium. Omdat het nog steeds zichtbaar is en nog steeds in de lijst staat, besteedt Flash nog steeds middelen aan deze sneeuwvlok. Als we de sneeuwvlok uit de lijst verwijderen, worden de bronnen vrijgemaakt en is de animatie efficiënter. Om de sneeuwvlokken te verwijderen die we niet langer nodig hebben in het weergaveoverzicht, kunnen we een removeChild-code toevoegen aan de voorwaardelijke instructie.

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


Wanneer u uw film test, verdwijnen de sneeuwvlokken naarmate ze de rechter- of onderkant van het podium bereiken en is de animatie efficiënter.

Volgende →

Copyright 2018 Adobe Systems Incorporated. Alle rechten voorbehouden. Schermafbeeldingen van Adobe-producten herdrukt met toestemming van 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, Fireworks, Contribute, Captivate, Flash Catalyst en Flash Paper is / zijn ofwel [a] geregistreerde handelsmerken [s] of een handelsmerk [s] van Adobe Systems Incorporated in de Verenigde Staten en / of andere landen.