Almacenamiento en caché de los objetos de visualizaciónFlash Player 9 y posterior, Adobe AIR 1.0 y posterior El tamaño de sus diseños en Flash irá creciendo, tanto si está creando una aplicación como si realiza complejas animaciones mediante scripts, por lo que deberá tener en cuenta el rendimiento y la optimización. Si tiene contenido que permanece estático (como una instancia de Shape rectangular), Flash Player y AIR no optimizarán el contenido. Por lo tanto, si cambia la posición del rectángulo, Flash Player o AIR redibujan toda la instancia de Shape. Se pueden almacenar en caché los objetos de visualización especificados para mejorar el rendimiento del archivo SWF. El objeto de visualización es una superficie, básicamente una versión de mapa de bits de los datos vectoriales de la instancia, que son datos que no deseará que cambien mucho a lo largo del archivo SWF. Por consiguiente, las instancias para las que está activada la caché no se vuelven a dibujar continuamente mientras se reproduce el archivo SWF, lo que permite que el archivo SWF se represente rápidamente. Nota: es posible actualizar los datos vectoriales, momento en el cual se recrea la superficie. Por tanto, los datos vectoriales almacenados en caché en la superficie no tienen por qué permanecer intactos en todo el archivo SWF.
Al establecer la propiedad cacheAsBitmap del objeto de visualización en true, el objeto de visualización almacena en caché una representación de mapa de bits de sí mismo. Flash Player o AIR crean un objeto de superficie para la instancia, que es un mapa de bits almacenado en caché, en lugar de los datos vectoriales. Si cambia los límites del objeto de visualización, la superficie se recrea en lugar de modificarse su tamaño. Las superficies pueden anidarse dentro de otras superficies. La superficie secundaria copia el mapa de bits en su superficie principal. Para obtener más información, consulte Activación de almacenamiento de mapas de bits en caché. Las propiedades opaqueBackground y scrollRect de la clase DisplayObject se relacionan con el almacenamiento en caché de mapa de bits a través de la propiedad cacheAsBitmap. Aunque estas propiedades son independientes entre sí, las propiedades opaqueBackground y scrollRect funcionan mejor cuando un objeto se almacena en caché como un mapa de bits; las ventajas de rendimiento de las propiedades opaqueBackground y scrollRect sólo se evidencian cuando se establece cacheAsBitmap en true. Para obtener más información sobre el desplazamiento del contenido de objetos de visualización, consulte Desplazamiento lateral y vertical de objetos de visualización. Para obtener más información sobre la configuración de un fondo opaco, consulte Configuración de un color de fondo opaco. Para obtener información sobre el enmascaramiento del canal alfa, que requiere que establezca la propiedad cacheAsBitmap como true, consulte Enmascarar objetos de visualización. Cuándo es conveniente activar la cachéLa activación de la caché para un objeto de visualización crea una superficie, lo que presenta algunas ventajas como, por ejemplo, una mayor velocidad de representación de animaciones vectoriales complejas. Existen varias situaciones en las que deseará activar la caché. Podría parecer que siempre es preferible activar la caché para mejorar el rendimiento de los archivos SWF; sin embargo, hay situaciones en las que la activación de la caché no mejora el rendimiento e incluso lo reduce. En esta sección se describen situaciones en las que debe utilizarse la activación de la caché y en las que deben emplearse objetos de visualización normales. El rendimiento global de los datos almacenados en caché depende de la complejidad de los datos vectoriales de las instancias, de la cantidad de datos que cambie y de si ha establecido la propiedad opaqueBackground. Si cambia zonas pequeñas, la diferencia entre el uso de una superficie y el uso de datos vectoriales puede ser insignificante. Es aconsejable probar ambas situaciones antes de implementar la aplicación. Cuándo es conveniente utilizar la caché de mapa de bitsA continuación se incluyen situaciones típicas en las que pueden apreciarse ventajas significativas al activar la caché de mapa de bits.
La activación de la caché de mapa de bits en todas estas situaciones mejora el nivel de respuesta e interactividad de la aplicación, pues optimiza los gráficos vectoriales. Asimismo, si se aplica un filtro a un objeto de visualización, cacheAsBitmap se establece automáticamente en true, aunque el usuario lo establezca explícitamente en false. Si se quitan todos los filtros del objeto de visualización, la propiedad cacheAsBitmap recupera el valor que se estableció por última vez. Cuándo es conveniente evitar utilizar la caché de mapa de bitsEl uso de esta función en circunstancias inadecuadas, puede afectar de forma negativa al rendimiento del archivo SWF. Cuando utilice la caché de mapa de bits, recuerde las siguientes directrices:
Activación de almacenamiento de mapas de bits en cachéPara activar la caché de mapa de bits para un objeto de visualización, debe establecerse su propiedad cacheAsBitmap en true: mySprite.cacheAsBitmap = true; Una vez establecida la propiedad cacheAsBitmap en true, es posible observar que el objeto de visualización ajusta automáticamente los píxeles a coordenadas enteras. Al probar el archivo SWF, debería apreciarse un aumento considerable en la velocidad de representación de imágenes vectoriales complejas. Si se dan una o varias de las siguientes condiciones, no se crea ninguna superficie (mapa de bits almacenado en caché) aunque cacheAsBitmap se haya establecido en true:
Matrices de transformación de mapa de bits almacenadas en cachéEn las aplicaciones de AIR para dispositivos móviles, es necesario establecer la propiedad cacheAsBitmapMatrix siempre que se defina la propiedad cacheAsBitmap. El establecimiento de esta propiedad permite aplicar un mayor rango de transformaciones al objeto de visualización sin activar la representación. mySprite.cacheAsBitmap = true; mySprite.cacheAsBitmapMatrix = new Matrix(); Cuando se establece esta propiedad de matriz, se puede aplicar la siguiente transformación adicional al objeto de visualización sin volver a almacenar el objeto en caché:
Estas transformaciones se aplican directamente al mapa de bits almacenado en caché. |
|