Filter och borttagning av dynamiska bitmappar

Undvik filter, inklusive filter bearbetade i Pixel Bender

Försök att minimera användningen av effekter som filter, bland annat filter som bearbetas i mobilenheter via Pixel Bender. När ett filter används på ett visningsobjekt skapas två bitmappar i minnet. Varje bitmapp har samma storlek som visningsobjektet. Det första skapas som en rastrerad version av visningsobjektet, vilket i sin tur används för att skapa ytterligare en bitmapp med filtret tillämpat:

Visa grafik i full storlek
Två bitmappar i minnet när filter används

När egenskapen för det ena filtret ändras, uppdateras båda bitmapparna i minnet för att skapa den resulterande bitmappen. Den här bearbetningen kräver viss processorkapacitet och två bitmappar kan kräva ganska mycket minne.

Flash Player 10.1 och AIR 2.5 har ett nytt filtreringsbeteende på alla plattformar. Om filtret inte ändras inom 30 sekunder, eller om det döljs eller inte visas på skärmen, frigörs minnet för den bitmapp som inte är filtrerad.

Detta innebär att hälften av minnesresurserna som används för ett filter går att frigöra på alla plattformar. I exempelvis ett textobjekt med ett oskärpefilter används texten enbart som en enkel dekoration och den ändras inte. Efter 30 sekunder kommer den icke filtrerade bitmappen i minnet att frigöras. Samma sak händer om texten är dold eller inte visas på skärmen i 30 sekunder. När en av filteregenskaperna ändras kommer den icke filtrerade bitmappen i minnet att återskapas. Den här funktionen kallas dynamisk bitmappsborttagning. Trots dessa förändringar ska du vara försiktig med att använda filter eftersom de fortfarande kräver mycket processor- eller grafikprocessorkapacitet när de ändras.

Ett tips är att använda bitmappar skapade med ett redigeringsverktyg, som exempelvis Adobe® Photoshop®, för att emulera filter när det är möjligt. Undvik att använda dynamiska bitmappar som skapas under körningen i ActionScript. Genom att använda externt skapade bitmappar kan belastningen på processorn och grafikprocessorn minskas, speciellt när filteregenskaperna inte förändras över tiden. Om det är möjligt bör du skapa eventuella bitmappseffekter i ett redigeringsverktyg. Du kan sedan visa bitmappen i körningsmiljön utan att behöva bearbeta den, vilket går mycket snabbare.