Optymalizacja animacji cząstek w programie Flash CS3
Teraz, gdy mamy FlashaR Animacja opadów śniegu w systemie cząstek CS3 działa dokładnie tak, jak chcemy, czas zoptymalizować kod programu sceny śniegu. Jeśli przetestowałeś animację, którą napisaliśmy w poprzednich samouczkach, prawdopodobnie zauważyłeś, że po pewnym czasie animacja ma tendencję do obciążania zasobów komputera. W tym samouczku omówimy kilka sposobów na zwiększenie wydajności animacji.

W obecnym kodzie używamy jednego detektora zdarzeń do nasłuchiwania każdej nowej klatki animacji. Z każdą nową ramką funkcja płatka śniegu (moduł obsługi zdarzeń) tworzy nowy płatek śniegu i dodaje go do listy wyświetlania Flash. Następnie używamy Math.random () do randomizacji położenia i właściwości alfa tego płatka śniegu. Używamy drugiego detektora zdarzeń, aby wywoływać funkcję opadów śniegu, ponownie przy każdej nowej ramce. Funkcja opadów śniegu sprawdza, czy płatek śniegu przesunął się poza prawą lub dolną krawędź sceny. Jeśli tak, usuwamy drugi detektor zdarzeń, który powtarza funkcję opadów śniegu. Powoduje to, że jeden płatek śniegu przestaje spadać, podczas gdy pozostałe spadają. Powtórzenie funkcji płatka śniegu tworzy animację opadów śniegu. Teraz musimy zmienić kod, aby był bardziej wydajny.

Metoda pierwsza

Pierwsza metoda wymaga dodania tylko jednego wiersza kodu do naszego programu. W funkcji opadania śniegu mamy już instrukcję warunkową, która sprawdza, czy płatek śniegu wyszedł poza scenę, a jeśli tak, usuwa nasłuchiwanie zdarzeń i zapobiega opadaniu płatka śniegu.
Płatek śniegu przestaje się poruszać, ale nadal jest widoczny na dole sceny. Ponieważ wciąż jest widoczny i nadal znajduje się na liście wyświetlania, Flash nadal wydaje zasoby na ten płatek śniegu. Usunięcie płatka śniegu z listy wyświetlania spowoduje zwolnienie zasobów i animację będzie bardziej wydajna. Aby usunąć płatki śniegu, których już nie potrzebujemy z listy wyświetlania, możemy dodać kod removeChild do instrukcji warunkowej.

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


Podczas testowania filmu płatki śniegu znikają, gdy docierają do prawej lub dolnej krawędzi sceny, a animacja jest bardziej wydajna.

Dalej →

Prawa autorskie 2018 Adobe Systems Incorporated. Wszelkie prawa zastrzeżone. Zrzuty ekranowe produktów Adobe zostały przedrukowane za zgodą 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 i Flash Paper jest / są [a] zarejestrowanym znakiem towarowym lub znakami towarowymi Adobe Systems Incorporated w Stanach Zjednoczonych i / lub innych krajach.


Instrukcje Wideo: Podstawy Animacji w Adobe Photoshop CS6 - animacja poklatkowa (Kwiecień 2024).