Weergaveobjecten in cache plaatsenFlash Player 9 of hoger, Adobe AIR 1.0 of hoger Naarmate uw ontwerpen in Flash groter worden, moet u nadenken over prestaties en optimalisatie, of u nu een toepassing of complexe gescripte animaties maakt. Wanneer u inhoud hebt die statisch blijft (zoals een rechthoekige Shape-instantie), optimaliseren Flash Player en AIR de inhoud niet. Wanneer u de positie van de rechthoek wijzigt, wordt de gehele Shape-instantie opnieuw in Flash Player of AIR getekend. U kunt opgegeven objecten in cache plaatsen om de prestaties van het SWF-bestand te verbeteren. Het weergaveobject is een oppervlak, in feite een bitmapversie van de vectorgegevens van de instantie. U zult deze gegevens tijdens het verloop van het SWF-bestand waarschijnlijk niet veel willen wijzigen. Instanties waarvoor plaatsing in cache is ingeschakeld, worden dus niet continu opnieuw getekend tijdens het afspelen van het SWF-bestand, waardoor het SWF-bestand sneller kan worden gerenderd. Opmerking: U kunt de vectorgegevens bijwerken, waarbij het oppervlak opnieuw wordt gemaakt. De vectorgegevens die in cache zijn geplaatst, hoeven hierdoor niet voor het hele SWF-bestand gelijk te blijven.
Als u de eigenschap cacheAsBitmap van een weergaveobject op true instelt, zorgt u ervoor dat het weergaveobject een bitmaprepresentatie van zichzelf in cache plaatst. Flash Player of AIR maakt een oppervlakobject voor de instantie. Dit is een in cache geplaatste bitmap in plaats van vectorgegevens. Wanneer u de grenzen van het weergaveobject wijzigt, wordt het oppervlak opnieuw gemaakt (en niet alleen maar gewijzigd). Oppervlakken kunnen binnen andere oppervlakken worden genest. De bitmap van het onderliggende oppervlak wordt naar het bovenliggende oppervlak gekopieerd. Zie Bitmap in cache plaatsen voor meer informatie. De eigenschappen opaqueBackground en scrollRect van de klasse DisplayObject zijn gerelateerd aan de eigenschap cacheAsBitmap, waarbij een bitmap in cache wordt geplaatst. Hoewel deze drie eigenschappen onafhankelijk van elkaar zijn, werken de eigenschappen opaqueBackground en scrollRect het best wanneer een object als bitmap in cache wordt geplaatst. De prestaties van de eigenschappen opaqueBackground en scrollRect verbeteren alleen wanneer u cacheAsBitmap instelt op true. Zie Weergaveobjecten pannen en schuiven voor meer informatie over het schuiven van inhoud van weergaveobjecten. Zie Een dekkende achtergrondkleur instellen voor meer informatie over het instellen van een dekkende achtergrond. Zie Weergaveobjecten maskeren voor meer informatie over alfkanaalmaskering, waarvoor u de eigenschap cacheAsBitmap op Weergaveobjecten maskeren moet instellen. Wanneer moet u plaatsing in cache inschakelen?Wanneer plaatsing in cache is ingeschakeld voor een weergaveobject, wordt een oppervlak gemaakt. Dit biedt een aantal voordelen: zo worden complexe vectoranimaties bijvoorbeeld snel gerenderd. Er zijn diverse scenario's denkbaar waarin het inschakelen van plaatsing in cache nuttig is. Misschien bent u geneigd plaatsing in cache altijd in te schakelen om de prestaties van SWF-bestanden te verbeteren. In sommige situaties worden de prestaties echter niet verbeterd bij plaatsing in cache, de prestaties kunnen zelfs verslechteren. In deze sectie worden scenario's beschreven waarbij plaatsing in cache moet worden gebruikt en er wordt beschreven wanneer u beter standaardweergaveobjecten kunt gebruiken. De totale prestaties van gegevens die in cache zijn geplaatst, zijn afhankelijk van de complexiteit van de vectorgegevens van uw instanties, van de hoeveelheid gegevens die u wijzigt en van de instelling van de eigenschap opaqueBackground. Wanneer u kleine gebieden wijzigt, kan het verschil tussen het gebruik van een oppervlak en vectorgegevens verwaarloosbaar klein zijn. Het kan zinvol zijn beide scenario's voor uw werk uit te proberen voordat u de toepassing implementeert. Wanneer moet u bitmaps in cache plaatsen?Hier volgen typische scenario's waarin plaatsing van bitmap in cache aanzienlijke voordelen kan opleveren.
Als u in al deze scenario's de bitmap in cache plaatst, wordt de reactiesnelheid en de interactiviteit van de toepassing verbeterd dankzij optimalisatie van de vectorafbeeldingen. Als u bovendien een filter toepast op een weergaveobject, wordt cacheAsBitmap automatisch op true ingesteld, zelfs als u deze eigenschap handmatig op false hebt ingesteld. Wanneer u alle filters voor een weergaveobject wist, wordt de eigenschap cacheAsBitmap gewijzigd in de laatst ingestelde waarde. Wanneer moet u bitmapcaching vermijden?Het gebruik van deze functie in de onjuiste situatie heeft ongewenste invloed op de prestaties van uw SWF-bestand. Gebruik de volgende richtlijnen wanneer u bitmaps in cache plaatst:
Bitmap in cache plaatsenAls u een weergaveobject als bitmap in cache wilt plaatsen, stelt u de eigenschap cacheAsBitmap in op true: mySprite.cacheAsBitmap = true; Nadat u de eigenschap cacheAsBitmap hebt ingesteld op true, verspringt het weergaveobject automatisch naar hele pixelcoördinaten. Wanneer u het SWF-bestand test, worden de animaties die worden uitgevoerd op een complexe vectorafbeelding, merkbaar sneller gerenderd. In de volgende situaties wordt een oppervlak (in cache geplaatste bitmap) niet gemaakt, zelfs niet wanneer cacheAsBitmap is ingesteld op true:
Transformatiematrices voor bitmaps in cacheIn AIR-toepassingen voor mobiele apparatuur dient u de eigenschap cacheAsBitmapMatrix altijd in te stellen als u de eigenschap cacheAsBitmap instelt. Zo kunt u een groter scala aan transformaties toepassen op het weergaveobject zonder rendering te activeren. mySprite.cacheAsBitmap = true; mySprite.cacheAsBitmapMatrix = new Matrix(); Wanneer u deze matrixeigenschap instelt, kunt u de volgende aanvullende transformaties toepassen op het weergaveobject zonder dat dit opnieuw in de cache wordt geplaatst:
Deze transformaties worden rechtstreeks toegepast op de cachebitmap. |
![]() |