Filters en dynamische bitmapontladingen

Vermijd het gebruik van filters, inclusief filters die verwerkt worden met Pixel Bender.

Minimaliseer het gebruik van effecten zoals filters, inclusief filters die in mobiele apparaten worden verwerkt via Pixel Bender. Wanneer er een filter op een weergaveobject wordt toegepast, maakt de runtime twee bitmaps in het geheugen. Deze bitmaps hebben elk de grootte van het weergaveobject. De eerste bitmap wordt gemaakt als een gerasterde versie van het weergaveobject, dat zelf wordt gebruikt om een tweede bitmap met toegepaste filter te maken:

Afbeelding groot weergeven
Twee bitmaps in het geheugen als er een filter wordt toegepast.

Wanneer u een van de eigenschappen van een filter aanpast, worden beide bitmaps in het geheugen bijgewerkt, zodat de resulterende bitmap ontstaat. Dit proces omvat CPU-verwerking en de twee bitmaps kunnen een grote hoeveelheid geheugen gebruiken.

In Flash Player 10.1 en AIR 2.5 wordt een nieuwe manier van filteren geïntroduceerd op alle platforms. Als de filter niet binnen 30 seconden wordt aangepast of als deze verborgen of offscreen is, komt het geheugen dat door de ongefilterde bitmap werd gebruikt vrij.

Deze functie bespaart de helft van het geheugen dat door een filter op alle platforms wordt gebruikt. Bekijk eens een tekstobject waarop een vervagingsfilter is toegepast. De tekst wordt in dit geval gebruikt voor eenvoudige decoratie en wordt niet aangepast. Na 30 seconden, komt de ongefilterde bitmap in he geheugen vrij. U verkrijgt hetzelfde effect als de tekst gedurende 30 seconden verborgen of offscreen is. Wanneer een van de filtereigenschappen wordt aangepast, wordt de ongefilterde bitmap in het geheugen opnieuw gemaakt. Deze functie wordt ook wel dynamisch bitmapontladen genoemd. Zelfs met deze optimalisaties moet u oppassen met het gebruik van filters; deze vereisen nog steeds uitgebreide CPU- of GPU-verwerking wanneer ze worden aangepast.

U kunt het beste bitmaps gebruiken die met een ontwerpprogramma zoals Adobe® Photoshop® zijn gemaakt om waar mogelijk filters te emuleren. Vermijd het gebruik van dynamische bitmaps die bij uitvoering zijn gemaakt in ActionScript. Het gebruik van extern ontworpen bitmaps helpt Flash Player om de CPU- of GPU-belasting te verminderen, vooral als de filtereigenschappen niet veranderen. Maak indien mogelijk alle vereiste bitmapeffecten in een ontwerpprogramma. U kunt de bitmap dan weergeven in de runtime zonder deze verder te hoeven bewerken en dat kan veel sneller gaan.