Razorfist schreef op woensdag 05 april 2006 @ 11:03:
Ik ben bezig aan een flash-game waarin behoorlijk veel vector-objecten voorkomen tegelijkertijd. Nu heb ik over de functie cacheAsBitmap gelezen waarmee de snelheidsproblemen die hiermee gepaard gaan aardig verminderd kunnen worden.
Maar na heel veel lezen en zoeken ben ik er nog niet echt achter hoe ik deze functie het best gebruik. Laat ik de functie los op elk object dat ik aanmaak, of op bijvoorbeeld een containerclip waar ze in zitten?
Met de
property cacheAsBitmap geef je voor de Flash Player aan (de graphic renderer) dat de MovieClip moet worden 'gecached' als een Bitmap, wat inhoudt dat de gerenderde Bitmap in het geheugen wordt gestored en met een simpele copy naar het scherm wordt gedisplayed. De MovieClip hoeft pas opnieuw gerenderd te worden als de MovieClip of de content daarin veranderd. Dit heeft als voordeel dat de Flash Player zich druk kan maken om andere onderdelen.
De MovieClip wordt opnieuw gerenderd als een van de volgende properties veranderd (of van de content):
* _xscale
* _yscale
* _rotation
* _alpha
* _width
* _height
* filters
* blendMode
* opaqueBackground
* transform
Er zijn nog andere scenario's ( als je met de Drawing Api gaat werken op deze MovieClip, of iets attached vanuit de library ) waardoor de MovieClip opnieuw gerenderd moet worden. Als dit elk frame gebeurd, heb je dus niets om de MovieClip te cachen, sterker nog het is nadeliger, omdat de Bitmap geheugen inneemt. Het is dus alleen nuttig bij MovieClips waarbij de content niet of nauwelijks verandert, of waarbij hele heftige vector shapes worden gebruikt (kaarten oid)...
HTH