Optimierung der Flash CS3-Partikelsystemanimation
Jetzt haben wir den BlitzR. Die Schneefallanimation des CS3-Partikelsystems funktioniert genau so, wie wir es möchten. Es ist Zeit, den Programmcode für die Schneeszene zu optimieren. Wenn Sie die Animation getestet haben, die wir in den vorherigen Tutorials geschrieben haben, haben Sie wahrscheinlich bemerkt, dass die Animation nach einiger Zeit dazu neigt, die Ressourcen Ihres Computers zu belasten. In diesem Tutorial werden einige Möglichkeiten vorgestellt, um die Animation effizienter zu gestalten.

Nach dem derzeitigen Stand des Codes verwenden wir einen Ereignis-Listener, um auf jeden neuen Frame der Animation zu warten. Mit jedem neuen Frame erstellt die Schneeflockenfunktion (Ereignishandler) eine neue Schneeflocke und fügt diese Schneeflocke der Flash-Anzeigeliste hinzu. Als nächstes verwenden wir Math.random (), um die Position und die Alpha-Eigenschaften dieser Schneeflocke zufällig zu bestimmen. Wir verwenden einen zweiten Ereignis-Listener, um die Schneefallfunktion erneut mit jedem neuen Frame aufzurufen. Die Schneefallfunktion prüft, ob sich die Schneeflocke über den rechten oder unteren Rand der Bühne hinaus bewegt hat. In diesem Fall entfernen wir den zweiten Ereignis-Listener, der die Schneefallfunktion wiederholt. Dies führt dazu, dass eine Schneeflocke nicht mehr fällt, während die anderen Schneeflocken weiter fallen. Die Wiederholung der Schneeflockenfunktion erzeugt die Schneefallanimation. Was wir jetzt tun müssen, ist, den Code so zu ändern, dass er effizienter ist.

Methode Eins

Die erste Methode erfordert das Hinzufügen nur einer Codezeile zu unserem Programm. Wir haben bereits eine bedingte Anweisung in der Schneefallfunktion, die prüft, ob die Schneeflocke die Bühne überschritten hat, und in diesem Fall den Ereignis-Listener entfernt und verhindert, dass die Schneeflocke fällt.
Die Schneeflocke bleibt stehen, ist aber am unteren Rand der Bühne noch sichtbar. Da Flash immer noch sichtbar und in der Anzeigeliste angezeigt wird, gibt Flash weiterhin Ressourcen für diese Schneeflocke aus. Wenn wir die Schneeflocke aus der Anzeigeliste entfernen, werden die Ressourcen freigesetzt und die Animation wird effizienter. Um die Schneeflocken zu entfernen, die wir nicht mehr in der Anzeigeliste benötigen, können wir der bedingten Anweisung einen removeChild-Code hinzufügen.

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


Wenn Sie Ihren Film testen, verschwinden die Schneeflocken, wenn sie den rechten oder unteren Rand der Bühne erreichen, und die Animation ist effizienter.

Weiter →

Copyright 2018 Adobe Systems Incorporated. Alle Rechte vorbehalten. Screenshots von Adobe-Produkten mit Genehmigung von Adobe Systems Incorporated. Adobe, Photoshop, Photoshop-Album, Photoshop-Elemente, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere-Elemente, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Fireworks, Contribute, Captivate, Flash Catalyst und Flash Paper ist / sind entweder [eine] eingetragene Marke (n) oder eine Marke (n) von Adobe Systems Incorporated in den USA und / oder anderen Ländern.


Video-Anleitungen: Kangertech Subtank Mini rba Wickeln Optimierung über Flash u. Geschmack e-Zigarette (Kann 2024).