A cacheasbitmap használatával felgyorsítja a flash alkalmazásokat, edapskov
CacheAsBitmap használata a flash alkalmazások felgyorsításához
Valószínűleg mindenki, aki megpróbálta meggyőzni erejét a Flash-ben, azzal szembesült, hogy fel kell gyorsítani a tárgyak vizualizációját a flash film jelenetében. Ez a probléma különösen akut a vektoros rajzokra, amelyek önmagukban nagyon igényesek az erőforrásokon. Ezenkívül a vektoros képek gyakran tartalmaznak színátmeneteket és transzlucenciát. Mindez negatívan befolyásolja a Flash Player teljesítményét.
A teljesítményre vonatkozó jelentős problémát különböző módon próbálják ki. Az egyik módja az objektumok gyorsítótárazása a szabványos cacheAsBitmap tulajdonság használatával. Ez a tulajdonság pontosan az, ami be van ágyazva a névbe - az objektumot raszteres ábrázolás formájában menti, és a raszterrel a flash-lejátszó gyorsabban működik, mint a vektoros képeken. Ez a tulajdonság az ActionScript 3.0 programban elérhető a DisplayObject-ből származó objektumokban (lásd a "Display List in ActionScript 3.0" c. És hihetetlenül egyszerű.
ActionScript 3.0 kód:
import flash.display.Sprite; var sprite: Sprite = új Sprite (); sprite.graphics.beginFill (0x000000.1); sprite.graphics.drawCircle (200 200 100); sprite.graphics.endFill (); addChild (sprite); / * engedélyezze a gyorsítótárat * / sprite.cacheAsBitmap = true; / * check * / nyomkövetés (sprite.cacheAsBitmap);
Amint látja, a gyorsítótárazás engedélyezéséhez csak a cacheAsBitmap tulajdonsághoz kell igazítani a bachele értékét.
Mi a cacheAsBitmap használata a gyakorlatban? Nézzünk egy példát.
A cacheAsBitmap bemutatása:
Ebben a példában van egy flash film 1000 animációs MovieClips. Ráadásul ezek a filmklipek nem csak vektorosak, de még mindig vannak színátmenet és áttetszőség. Természetesen a videó lelassul. A klip bal felső sarkában, a számláló alatt van egy kapcsoló. Ezzel a kapcsolóval engedélyezheti vagy letilthatja a videoklipek gyorsítótárazását. Az alapértelmezett a hamis - a gyorsítótár letiltása. Most engedélyezze a gyorsítótárazást. Mi változott?
Tény, hogy még számláló nélkül is világos, hogy a cacheAsBitmap segítségével a példánk sokkal gyorsabban kezdett dolgozni. Amint bizonyítani kell.
[!] Ami a számlálót illeti a videó bal felső sarkában, az a "Flash alkalmazások teljesítményének felügyelete" leckéből származik. Azt is elhúzza minden mutatóját.
És minden olyan nagyszerű lenne, ha a cacheAsBitmap használatára nincs korlátozás. És számos ilyen korlátozás létezik:
- az objektumok méretének korlátozása;
A Flash Playerben a bitképek maximális szélessége és magassága korlátozott. Ezek a korlátozások különböznek a flash-lejátszó különböző verzióihoz képest. Rendszerint azonban a megengedhető méret elegendő a többlethez.
- a gyorsítótárazott objektumok manipulációjának korlátozása;
A tárolt objektum vektor tartalmának változatlan formában kell lennie. Ha ez megváltozik, akkor az objektum raszteres ábrázolása átfestésre kerül. És ez nemcsak nem gyorsítja fel a flash film teljesítményét, hanem éppen ellenkezőleg, negatív hatással van a teljesítményre. Ne feledje, hogy a fenti példában az objektumok a koordinátarendszerhez képest megváltoztatják helyzetüket, de belső tartalma változatlan marad.
- Előfordulhat, hogy a gyorsítótárban nincs memória.
Még nem találkoztam vele, de így van a segítségben. Ez azonban nagyon érthető ajánlás, mivel a raszterkép általában több memóriát vesz igénybe, mint egy vektoros kép.
[!] Ne feledje, hogy a flash lejátszó automatikusan elmenti azokat az objektumokat, amelyekhez a szűrőket alkalmazzák (és mindaddig, amíg a szűrők rájuk kerülnek).
[!] Milyen érdekes hatások érhetők el a cacheAsBitmap alkalmazásnak a maszkra való alkalmazásával kapcsolatban, amelyet a "Gradient Mask using ActionScript 3.0" című cikk tartalmaz.