Filtros e descarregamento dinâmico de bitmap

Evite filtros, inclusive aqueles processados pelo Pixel Bender.

Tente reduzir a utilização de efeitos como filtros, incluindo filtros processados em dispositivos portáteis por meio do Pixel Bender. Quando um filtro é aplicado a um objeto de exibição, o tempo de execução cria dois bitmaps na memória. Esses bitmaps têm, cada um, o tamanho do objeto de exibição. O primeiro é criado como uma versão rasterizada do objeto de exibição que, por sua vez, é usado para produzir um segundo bitmap com o filtro aplicado:

Exibir gráfico inteiro
Dois bitmaps na memória quando o filtro é aplicado

Quando uma das propriedades de um filtro é modificada, ambos os bitmaps são atualizados na memória para criar o bitmap resultante. Esse processo envolve algum processamento da CPU e os dois bitmaps podem usar uma quantidade considerável de memória.

O Flash Player 10.1 e o AIR 2.5 introduzem um novo comportamento de filtragem em todas as plataformas. Se o filtro não for modificado em até 30 segundos, ou se for ocultado ou estiver fora da tela, a memória usada pelo bitmap sem filtro é liberada.

Este recurso economiza metade da memória usada pelo filtro em todas as plataformas. Por exemplo, considere um objeto de texto com um filtro de desfoque aplicado. O texto nesse caso é usado para simples decoração e não é modificado. Após 30 segundos, o bitmap sem filtro é liberado da memória. O mesmo resultado ocorre se o texto for ocultado por 30 segundos ou ficar fora da tela. Quando uma das propriedades do filtro for modificada, o bitmap sem filtro é recriado na memória. Este recurso é chamado carregamento dinâmico de bitmap. Mesmo com essas otimizações, tome cuidado com os filtros; eles ainda requerem extenso processamento da CPU ou da GPU quando modificados.

Como uma boa prática, utilize bitmaps criados com uma ferramenta de autoria como o Adobe® Photoshop®, para emular filtros quando possível. Evite utilizar bitmaps dinâmicos criados durante o tempo de execução no ActionScript. Usar bitmaps criados externamente ajuda o tempo de execução a reduzir a carga da CPU ou da GPU, especialmente quando as propriedades do filtro não mudam com o tempo. Se possível, crie quaisquer efeitos que você precise em um bitmap com uma ferramenta de autoria. Você pode então exibir o bitmap no tempo de execução sem executar qualquer processamento nele, o que pode ser muito mais rápido.