Adobe - flash - platforma Caching obiecte de afișare

Deoarece dimensiunea proiectelor Flash trebuie să ia în considerare și optimizarea performanței, indiferent dacă creați o aplicație sau complex scriptat animații. În cazul în care conținutul este static (ca un exemplu de obiect Forma dreptunghiulara), Flash Player Player și AIR nu-l optimiza. Prin urmare, atunci când schimbați poziția dreptunghiului Flash Player și AIR face din nou întreaga instanță Shape.

Puteți pune în cache-ul specificat obiectele de afișare pentru a îmbunătăți performanța SWF-fișier. Obiectul de afișare este un substrat. Aceasta este, de obicei, o versiune bitmap de instanță a datelor vectoriale care nu este planificat pentru a schimba mult în cadrul SWF-fișier. Prin urmare, cazuri cu cache activat nu sunt redesenate în mod continuu ca redarea SWF-fișier care vă permite să vizualizați rapid fișierul.

Notă. date vectoriale pot fi actualizate. Când substratul este recreat. Prin urmare, datele vectoriale stocate în memoria cache în substrat nu ar trebui să rămână aceeași pentru întreaga SWF-fișier.

Atribuirea proprietății cacheAsBitmap a obiectului de afișare la true determină cache-urile de obiecte proprii de reprezentare bitmap. Flash Player sau Adobe AIR, și pentru a crea o instanță a unui substrat obiect, care este un bitmap în cache în loc de date vectoriale. Când modificările de delimitare a obiectelor de afișare realizată de recreere a substratului în loc de redimensionare. Substraturile pot fi încorporate în alte substraturi. O filială copii substrat bitmap sale pe substratul părinte. Pentru informații suplimentare. A se vedea „Activarea bitmap caching“.

proprietate OpaqueBackground și clasa scrollRect DisplayObject pentru a include bitmap cache folosind proprietatea cacheAsBitmap. Deși trei dintre aceste proprietăți sunt independente una de cealaltă, proprietăți și funcția opaqueBackground scrollRect cel mai bine atunci când obiectul este salvată în memoria cache ca bitmap. Câștigul în performanță folosind proprietățile și opaqueBackground scrollRect vizibile numai atunci când cacheAsBitmap este setat la true. Pentru mai multe informații despre conținutul defilare obiect de afișare, consultați. În „Panoramarea și defilare obiecte de afișare“. Pentru mai multe informații despre setarea unui fundal opac, a se vedea. În „Setarea o culoare de fundal opac“.

Pentru informații despre canalul de mascare alfa, care necesită atribuirea proprietatea cacheAsBitmap la true. cm., vezi „Mascarea obiecte de afișare“.

Când să utilizați cache

Când este creat cache pentru a sprijini obiect de afișare, care are mai multe avantaje (de exemplu, permite vizualizarea animație vector complex mai rapid). Există o serie de scenarii care necesită cache activat. Poate părea că includ cache, întotdeauna, atunci când doriți să îmbunătățiți performanța SWF-fișiere. Cu toate acestea, există situații în care o includere cache nu îmbunătățește performanța sau chiar provoca scăderea acesteia. Această secțiune descrie scenarii în care ar trebui să fie utilizate de cache și utilizări ale obiectelor de afișare convenționale.

Performanța generală a datelor din cache depinde de complexitatea datelor vectoriale în dublu exemplar, cantitatea de date schimbat și dacă proprietatea opaqueBackground este inclusă. La schimbarea mici regiuni, diferența dintre substrat și utilizarea datelor vectoriale pot fi mici. Înainte de implementarea unei aplicații poate fi util pentru a testa ambele scenarii cu munca ta.

Cazurile de cache utilizare bitmap

Următoarele sunt scenarii tipice în care cache bitmap pot fi foarte avantajoase.

Cu o imagine de fundal complex: O aplicație care conține o imagine vectorială cu cadru complex și detaliat al fundalului (probabil o imagine la care aplicați urme bitmap, sau lucrări create în Adobe Illustrator®). Puteți anima caracterele de fundal. Acest lucru va încetini animație, deoarece fundalul este necesar pentru a crea în mod constant re-date vectoriale. Pentru a îmbunătăți performanța, puteți atribui proprietatea opaqueBackground a obiectului de afișare de fundal la true. Fundalul este redat ca un bitmap și poate fi redesenat rapid, creșterea vitezei de redare a animației.

Un câmp de text defilare: O aplicație care afișează o cantitate mare de text într-un câmp de text defilare. caseta de text poate fi plasat într-un obiect de afișare, care este setat pentru a derula cu frontierele de defilare (proprietății scrollRect). Acest lucru vă permite pentru a derula rapid pixelii în instanță specificat. Când defilare de afișare obiect exemplu tot câmpul de text nu este format din nou. In schimb, pixelii defilat trecerea în sus și apoi a format un nou domeniu.

Sistemul windowing: O aplicație cu un sistem complex de ferestre suprapuse. Fiecare fereastră poate fi deschisă sau închisă (de exemplu, ferestre de browser web). Dacă marcați fiecare fereastră ca o suprafață (prin setarea proprietății cacheAsBitmap la true), fiecare fereastră este izolat și în cache. Utilizatorii pot trage ferestrele, astfel încât acestea se suprapun, conținutul vectorului nu este necesară în fiecare fereastră generat din nou.

Mascarea alfa: folosind mascare canal alfa trebuie să fie atribuită valoarea proprietății cacheAsBitmap adevăratei. Pentru informații suplimentare. A se vedea „Mascarea obiecte de afișare“.

Activarea cache bitmap în toate aceste scenarii îmbunătățește capacitatea de reacție și interactivitatea a aplicației prin optimizarea grafică vectorială.

În plus, de fiecare dată când aplicați un filtru pentru un obiect de afișare, cacheAsBitmap este setat automat la true, chiar dacă alegeți în mod explicit la false. Dacă eliminați toate filtrele dintr-un obiect de afișare, proprietatea cacheAsBitmap va fi atribuit ultimul dintre valorile atribuite.

Atunci când pentru a evita folosirea bitmap cache

Folosind această funcție, la o serie de circumstanțe greșite pot afecta negativ performanța SWF-fișiere. Când utilizați bitmap cache, amintiți-vă următoarele recomandări.

Nu folosiți prea mult pentru suprafețe (obiecte de afișare cu cache activat) decât este necesar. Orice substrat necesită mai multă memorie decât un obiect grafic obișnuit. Aceasta înseamnă că substratul trebuie să fie utilizat numai atunci când este necesar pentru a îmbunătăți performanța de redare.

Un bitmap în cache se poate utiliza în mod semnificativ mai multă memorie decât un obiect grafic obișnuit. De exemplu, dacă mărimea Sprite instanță în zona de lucru este de 250x250 pixeli, atunci cache poate necesita 250k în schimb 1KB în cazul convențional (care nu sunt plasate în cache) instanta Sprite.

Evitați creșterea suprafețelor stocate în memoria cache. În cazul în cache bitmap este utilizat excesiv de activă, acesta consumă o cantitate mare de memorie (a se vedea. Punctul precedent), mai ales când măriți.

Substraturile care urmează să fie utilizate pentru acele cazuri de obiecte de afișare care, în general, sunt statice (fără animație). Un astfel de exemplu poate fi tras sau mutat, dar conținutul său nu ar trebui să fie animate sau modificate în mod semnificativ. Animație sau un conținut în schimbare sunt mult mai probabil în cazul MovieClip instanță cu animație sau copiere video. De exemplu, în cazul în care instanța este rotită sau transformată, substratul folosit date vectoriale interschimbabil și, ceea ce face dificilă procesarea și afecta negativ performanța SWF-fișiere.

În cazul în care substratul utilizat în amestec cu date vectoriale, crește cantitatea de calcul efectuat de aplicații Flash Player și AIR (și, uneori, calculator). Grupa substrat ori de câte ori este posibil (de exemplu, pentru a crea aplicații cu ferestre).

Nu-i obiecte cache ale căror grafică se schimbă frecvent. De fiecare dată când zoom, rotire a obiectului imagisticii, proprietatea se schimbă alfa, transformând filiala culoare în mișcare de obiecte afișate și desen, folosind un proprietăți grafice redesenata bitmap în cache. Dacă acest lucru se întâmplă în fiecare cadru, runtime-ul trebuie să adăugați un obiect la un bitmap și apoi copiați ca bitmap în zona de lucru, ceea ce duce la o creștere a volumului de muncă, comparativ cu un desen cu obiecte care nu în cache în zona de lucru. Relația dintre optimizarea performanței cache și rata de reîmprospătare depinde de complexitatea și mărimea obiectului de afișare și poate fi determinat numai prin testarea conținutului particular.

Activarea bitmap cache

Pentru a activa caching bitmap pentru un obiect de afișare, proprietatea cacheAsBitmap trebuie să fie setat la true.

După atribuirea proprietatea cacheAsBitmap la true, puteți observa că obiectul de afișare se leagă în mod automat punctele de imagine la valori întregi ale coordonatelor. În timpul testului SWF-dosar arată că imaginile vectoriale complexe animate sunt redate mult mai repede.

Substratul (bitmap în cache) nu este generată chiar și în cazul în care cacheAsBitmap setat la true. în prezența unuia sau mai multora dintre următoarele condiții.

Dimensiunea bitmap depășește 2880 în lățime sau înălțime.

Nu se poate găsi un bitmap (eroarea "Out of Memory").

bitmaps matricea de transformare în cache

În aplicații AIR pentru dispozitivele mobile ar trebui să fie instalate proprietatea cacheAsBitmapMatrix, în toate cazurile, atunci când se administrează de proprietate cacheAsBitmap. Setarea această proprietate va permite un set mai larg de modificări pentru obiectele expuse fără a re-redare.

Dacă setați proprietatea matricei obiectului imagisticii se poate aplica o transformare suplimentară fără a re-cache obiect.

Mutarea și transport fără a face referire la pixeli

Schimbă valoarea alfa (0 până la 100% transparență)