Matrices de transformation des bitmaps mis en cache dans AIR

Définissez la propriété cacheAsBitmapMatrix lorsque vous utilisez des bitmaps mis en cache dans les applications AIR mobiles.

Dans le profil AIR mobile, vous pouvez affecter un objet Matrix à la propriété cacheAsBitmapMatrix d’un objet d’affichage. Lorsque vous définissez cette propriété, vous pouvez appliquer une transformation bidimensionnelle à l’objet sans régénérer le bitmap mis en cache. Vous pouvez en outre modifier la propriété alpha sans régénérer le bitmap mis en cache. Il est également nécessaire de définir la propriété cacheAsBitmap sur true et de vérifier qu’aucune propriété 3D de l’objet n’est définie.

La définition de la propriété cacheAsBitmapMatrix génère le bitmap mis en cache même si l’objet d’affichage est en dehors de l’écran ou masqué, ou si sa propriété visible est définie sur false . La réinitialisation de la propriété cacheAsBitmapMatrix à l’aide d’un objet Matrix contenant une transformation différente régénère également le bitmap mis en cache.

La transformation de matrice que vous appliquez à la propriété cacheAsBitmapMatrix est également appliquée à l’objet d’affichage lors du rendu de ce dernier dans le cache de bitmaps. Ainsi, si la transformation contient une échelle de 2x, la taille du rendu bitmap est deux fois supérieure à celle du rendu vectoriel. Le moteur de rendu applique la transformation inverse au bitmap mis en cache afin que l’affichage final ait un aspect identique. Vous pouvez réduire la taille du bitmap mis en cache afin de limiter la consommation de mémoire, au détriment de la fidélité du rendu. Inversement, vous pouvez agrandir le bitmap pour augmenter la qualité du rendu, bien que cela risque d’accroître la consommation de mémoire. Quoi qu’il en soit, vous devez en général utiliser une matrice d’identité, c’est-à-dire une matrice qui n’applique aucune transformation, afin d’éviter toute modification de l’apparence, comme indiqué dans l’exemple suivant :

displayObject.cacheAsBitMap = true; 
displayObject.cacheAsBitmapMatrix = new Matrix();

Une fois la propriété cacheAsBitmapMatrix définie, vous pouvez mettre à l’échelle, incliner, faire pivoter et translater l’objet sans déclencher la régénération du bitmap.

Vous pouvez également modifier la valeur alpha dans une plage de valeurs comprises entre 0 et 1. Si vous modifiez la valeur alpha via la propriété transform.colorTransform avec une transformation de couleur, la valeur alpha utilisée dans l’objet de transformation doit être comprise entre 0 et 255. Modifier autrement la transformation de couleur entraîne la régénération du bitmap mis en cache.

Veillez à toujours définir la propriété cacheAsBitmapMatrix chaque fois que vous définissez cacheAsBitmap sur true dans le contenu créé pour les périphériques mobiles. Vous devez toutefois prendre en compte l’inconvénient suivant. Après la rotation, la mise à l’échelle ou l’inclinaison d’un objet, le rendu final peut présenter des artefacts de crènelage ou de mise à l’échelle par rapport à un rendu vectoriel normal.