Filtri e scaricamento dinamico delle bitmap

Evitate l'uso dei filtri, compresi quelli elaborati tramite Pixel Bender.

Cercate di limitare l'uso di effetti quali i filtri, compresi i filtri elaborati nei dispositivi mobili tramite Pixel Bender. Quando un filtro viene applicato a un oggetto di visualizzazione, il runtime crea due bitmap in memoria. Ciascuna di queste bitmap ha le dimensioni dell'oggetto di visualizzazione. La prima viene creata come versione rasterizzata dell'oggetto di visualizzazione, che a sua volta viene utilizzata per produrre una seconda bitmap con il filtro applicato:

Visualizzazione dell’elemento grafico a dimensioni intere
Due bitmap in memoria quando è applicato un filtro

Quando si modifica una delle proprietà di un filtro, entrambe le bitmap vengono aggiornate in memoria per creare la bitmap risultante. Questo processo comporta una certa attività di elaborazione per la CPU e le due bitmap possono utilizzare una quantità significativa di memoria.

Flash Player 10.1 e AIR 2.5 introducono un nuovo comportamento di filtraggio per tutte le piattaforme. Se il filtro non viene modificato entro 30 secondi, oppure è nascosto o fuori dello schermo, la memoria utilizzata dalla bitmap non filtrata viene liberata.

Questa funzione consente di risparmiare metà della memoria utilizzata da un filtro su tutte le piattaforme. Ad esempio, considerate un oggetto di testo al quale sia applicato un filtro di sfocatura. Il testo in questo caso viene utilizzato per una semplice decorazione e non subisce modifiche. Dopo 30 secondi, la bitmap non filtrata in memoria viene liberata. Lo stesso risultato si verifica se il testo rimane nascosto o fuori schermo per 30 secondi. Quando una delle proprietà del filtro viene modificata, la bitmap non filtrata viene ricreata in memoria. Questa funzione prende il nome di "scaricamento dinamico delle bitmap". Anche con queste ottimizzazioni, usate i filtri con parsimonia poiché richiedono comunque un'intensa attività di elaborazione da parte della CPU o GPU quando vengono modificati.

Di norma, ogni volta che è possibile, utilizzate le bitmap create con un software di authoring come Adobe® Photoshop® per emulare i filtri. Evitate di utilizzare le bitmap dinamiche create in runtime in ActionScript. L'uso di bitmap create esternamente consente al runtime di ridurre il carico di lavoro per la CPU o la GPU, specialmente quando le proprietà del filtro non cambiano nel corso del tempo. Se possibile, create gli effetti che volete aggiungere a una bitmap in un programma di authoring. Potete quindi visualizzare la bitmap in runtime senza ulteriori elaborazioni, ottenendo un risultato potenzialmente molto più rapido.