Folosind cacheasbitmap pentru a accelera aplicațiile flash, edapskov

Folosind cacheAsBitmap pentru a accelera aplicațiile flash

Probabil, toți cei care și-au încercat forțele în Flash, s-au confruntat cu nevoia de a accelera vizualizarea obiectelor pe scena filmului flash. Această problemă este deosebit de acută pentru desenele vectoriale, care, în sine, sunt foarte solicitante pentru resurse. În plus, imaginile vectorilor conțin adesea gradienți și transluciditate. Toate acestea afectează negativ performanța Flash Player.

O problemă marcată cu performanța este încercată în moduri diferite. O modalitate este de a cache obiecte folosind proprietatea cacheAsBitmap standard. Are această proprietate exact ceea ce este încorporat în numele său - salvează obiectul sub forma reprezentării raster, iar cu raster flash-player-ul funcționează mai repede decât cu imaginile vectoriale. Această proprietate este disponibilă în ActionScript 3.0 pentru obiecte care derivă din DisplayObject (vedeți foaia de înșelătorie din "Listă de afișare în ActionScript 3.0"). Și este incredibil de simplu.

Codul ActionScript 3.0:

import flash.display.Sprite; var sprite: Sprite = Sprite nou (); sprite.graphics.beginFill (0x000000.1); sprite.graphics.drawCircle (200,200,100); sprite.graphics.endFill (); addChild (sprite); / * activa caching * / sprite.cacheAsBitmap = true; / * verificare * / urmărire (sprite.cacheAsBitmap);

După cum puteți vedea, pentru a activa cache-ul, trebuie doar să atribuiți valoarea bachelor adevărată proprietății cacheAsBitmap.

Care este utilizarea cacheAsBitmap în practică? Să ne uităm la un exemplu.

Demonstrarea cacheAsBitmap:

În acest exemplu, există un film flash cu 1000 animate MovieClips. Și aceste clipuri video nu sunt numai vectori, dar au încă o umplutură de gradient și o transluență. Bineînțeles, videoclipul încetinește. În colțul din stânga sus al acestui clip, sub tejghea, există un comutator. Cu acest comutator puteți activa / dezactiva cache-ul filmelor video. Implicit este fals - caching-ul este dezactivat. Acum permiteți cache-ul. Ce sa schimbat?

De fapt, chiar și fără un contor, este clar că cu ajutorul serviciului cacheAsBitmap activat, exemplul nostru a început să funcționeze mult mai repede. După cum este necesar pentru a dovedi.

[!] În ceea ce privește contorul din colțul din stânga sus al videoclipului, este luat din lecția "Monitorizarea performanțelor aplicațiilor flash". Decriptează, de asemenea, toți indicatorii săi.

Și totul ar fi grozav dacă nu ar exista restricții privind utilizarea cacheAsBitmap. Există mai multe restricții:

- limitarea dimensiunii obiectelor;

În Flash Player, există restricții privind lățimea și înălțimea maximă a fișierelor bitmap. Aceste restricții sunt diferite pentru diferite versiuni ale playerului flash. Cu toate acestea, de regulă, dimensiunea admisibilă este suficientă cu un excedent.

- restricționarea manipulării cu obiecte stocate în cache;

Conținutul vectorial al obiectului cache trebuie să rămână neschimbat. Dacă se schimbă, atunci reprezentarea raster a obiectului este repetată. Și acest lucru nu numai că nu accelerează performanța filmului flash, ci, dimpotrivă, afectează negativ performanța. Rețineți că în exemplul de mai sus obiectele își schimbă poziția față de sistemul de coordonate, dar conținutul lor intern rămâne neschimbat.

- Pot exista erori din cauza lipsei de memorie pentru cache.

Nu l-am cunoscut încă, dar așa este menționat în ajutor. Totuși, aceasta este o recomandare foarte ușor de înțeles, având în vedere că o imagine raster, ca regulă, necesită mai multă memorie decât o imagine vectorială.

[!] Rețineți că playerul Flash cachează automat obiectele la care sunt aplicate filtrele (și atâta timp cât filtrele sunt aplicate acestora).

[!] Despre ce efecte interesante pot fi obținute prin aplicarea cacheAsBitmap la mască, a fost menționată în articolul "Masca gradient folosind ActionScript 3.0".

Articole similare