flash.filtersGradientGlowFilter La classe GradientGlowFilter permet d’appliquer un effet de rayonnement dégradé à des objets d’affichage.Permet de créer un effet néon en dégradé. flash.filters:BitmapFilter La classe GradientGlowFilter permet d’appliquer un effet de rayonnement dégradé à des objets d’affichage. L’aspect d’un rayonnement dégradé est réaliste et inclut un dégradé de couleurs que vous pouvez contrôler. Vous pouvez appliquer un rayonnement dégradé autour du bord intérieur ou extérieur d’un objet, ou encore par-dessus l’objet. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux objets d’affichage, utilisez la propriété filters. Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la propriété cacheAsBitmap de cet objet est réglée sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge le redimensionnement de la scène. Toutefois, le redimensionnement général, la rotation et l’inclinaison ne sont pas pris en charge. Si l’objet est lui-même redimensionné (si les propriétés scaleX et scaleY ne sont pas réglées sur 1,0), l’effet de filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, lorsque vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant dessine un carré auquel un filtre de rayonnement dégradé est appliqué. La séquence des principales tâches de l’exemple s’organise comme suit :
  1. Importation des classes requises.
  2. Déclaration des variables globales utilisées pour définir le carré et le filtre.
  3. Création de la fonction constructeur qui effectue les actions suivantes :
    • Appel de la méthode draw() qui utilise des méthodes de la classe Graphics, accessibles par le biais de la propriété graphics de Sprite, pour dessiner un carré.
    • Création d’un objet BitmapFilter nommé filter auquel est attribuée la valeur renvoyée d’un appel à getBitmapFilter() qui crée le filtre.
    • Création d’un nouveau tableau nommé myFilters auquel est ajouté filter.
    • Attribution de myFilters à la propriété filters de l’objet GradientGlowFilterExample. Ceci a pour effet d’appliquer tous les filtres trouvés dans myFilters, en l’occurrence filter uniquement.
package { import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientGlowFilter; import flash.display.Sprite; public class GradientGlowFilterExample extends Sprite { private var bgColor:uint = 0xCCCCCC; private var size:uint = 80; private var offset:uint = 50; private var distance:Number = 0; private var angleInDegrees:Number = 45; private var colors:Array = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF]; private var alphas:Array = [0, 1, 1, 1]; private var ratios:Array = [0, 63, 126, 255]; private var blurX:Number = 50; private var blurY:Number = 50; private var strength:Number = 2.5; private var quality:Number = BitmapFilterQuality.HIGH; private var type:String = BitmapFilterType.OUTER; private var knockout:Boolean = false; public function GradientGlowFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { return new GradientGlowFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
GradientGlowFilter.ratiosflash.display.BitmapData.applyFilter()flash.display.DisplayObject.cacheAsBitmapflash.display.DisplayObject.filtersClasse GlowFilterGradientGlowFilter Initialise le filtre avec les paramètres spécifiés.distanceNumber4.0Distance de décalage du rayonnement. angleNumber45Angle, exprimé en degrés. Les valeurs valides sont comprises entre 0 et 360. colorsArraynullTableau de couleurs définissant un dégradé. Par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc. alphasArraynullTableau de valeurs de transparence alpha pour les couleurs correspondantes du tableau colors. Les valeurs valides pour chaque élément du tableau sont comprises entre 0 et 1. La valeur 0,25, par exemple, définit une valeur de transparence alpha de 25 %. ratiosArraynullTableau des taux de répartition des couleurs. Les valeurs valides sont comprises entre 0 et 255. Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée sur 100 %. blurXNumber4.0Quantité de flou horizontal. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurYNumber4.0Quantité de flou vertical. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. strengthNumber1Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste entre le rayonnement et l’arrière-plan est important. Les valeurs valides sont comprises entre 0 et 255. Plus la valeur est élevée, plus l’empreinte est marquée. La valeur 0 signifie que le filtre n’est pas appliqué. qualityint1Nombre d’applications du filtre. Utilisez les constantes BitmapFilterQuality :
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Pour plus d’informations, voir la description de la propriété quality.

typeStringinnerPositionnement de l’effet de filtre. Les valeurs possibles sont les constantes flash.filters.BitmapFilterType :
  • BitmapFilterType.OUTER, rayonnement sur le bord extérieur de l’objet ;
  • BitmapFilterType.INNER, rayonnement sur le bord intérieur de l’objet, il s’agit de la valeur par défaut.
  • BitmapFilterType.FULL, rayonnement au-dessus de l’objet.
knockoutBooleanfalseSpécifie si l’objet a un effet de masquage. Un effet de masquage rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. La valeur true spécifie un effet de masquage ; la valeur par défaut est false (pas d’effet de masquage).
Initialise le filtre avec les paramètres spécifiés.
clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de GradientGlowFilter dont toutes les propriétés sont identiques à celles de l’occurrence de GradientGlowFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. alphas Tableau de valeurs de transparence alpha pour les couleurs correspondantes du tableau colors.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeErrorTableau de valeurs de transparence alpha. Tableau de valeurs de transparence alpha pour les couleurs correspondantes du tableau colors. Les valeurs valides pour chaque élément du tableau sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %.

La propriété alphas ne peut pas être modifiée en manipulant directement ses valeurs. Vous devez obtenir une référence à alphas, effectuer les modifications sur la référence, puis définir la propriété alphas sur la référence.

Les propriétés colors, alphas et ratios sont liées. Le premier élément du tableau colors correspond au premier élément du tableau alphas, du tableau ratios, etc.

GradientGlowFilter.colorsGradientGlowFilter.ratios
angle Angle, exprimé en degrés.Number Angle, exprimé en degrés. Les valeurs possibles sont comprises entre 0 et 360. La valeur par défaut est 45.

La valeur d’angle représente l’angle de la source lumineuse théorique éclairant l’objet et détermine l’emplacement de l’effet par rapport à ce dernier. Si la valeur de distance est 0, il n’y a pas d’effet de décalage par rapport à l’objet. La propriété angle n’a donc aucun effet.

blurX Quantité de flou horizontal.Number Quantité de flou horizontal. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurY Quantité de flou vertical.Number Quantité de flou vertical. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. colors Tableau de couleurs définissant un dégradé.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeError Tableau de couleurs définissant un dégradé. Par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.

La propriété colors ne peut pas être modifiée en manipulant directement ses valeurs. Vous devez obtenir une référence à colors, effectuer les modifications sur la référence, puis définir la propriété colors sur la référence.

Les propriétés colors, alphas et ratios sont liées. Le premier élément du tableau colors correspond au premier élément du tableau alphas, du tableau ratios, etc.

GradientGlowFilter.alphasGradientGlowFilter.ratios
distance Distance de décalage du rayonnement.Number Distance de décalage du rayonnement. La valeur par défaut est 4. knockout Spécifie si l’objet a un effet de masquage.Boolean Spécifie si l’objet a un effet de masquage. Un effet de masquage rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. La valeur true spécifie un effet de masquage ; la valeur par défaut est false (pas d’effet de masquage). quality Nombre d’applications du filtre.int Nombre d’applications du filtre. La valeur par défaut est BitmapFilterQuality.LOW, ce qui revient à appliquer le filtre une seule fois. La valeur BitmapFilterQuality.MEDIUM applique le filtre deux fois. La valeur BitmapFilterQuality.HIGH l’applique trois fois. Les rendus des filtres de valeurs faibles sont obtenus plus rapidement.

Pour la plupart des applications, une valeur de quality faible, moyenne ou élevée est suffisante. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour obtenir différents effets, mais le rendu des valeurs les plus élevées est moins rapide. Sans augmenter la valeur de quality, vous pouvez généralement obtenir un effet similaire, avec un rendu plus rapide, en augmentant simplement les valeurs des propriétés blurX et blurY.

flash.filters.BitmapFilterQuality
ratios Tableau de taux de répartition des couleurs, pour les couleurs correspondantes du tableau colors.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeError Tableau de taux de répartition des couleurs, pour les couleurs correspondantes du tableau colors. Les valeurs possibles sont comprises entre 0 et 255.

La propriété ratios ne peut pas être modifiée en manipulant directement ses valeurs. Vous devez obtenir une référence à ratios, effectuer les modifications sur la référence, puis définir la propriété ratios sur la référence.

Les propriétés colors, alphas et ratios sont liées. Le premier élément du tableau colors correspond au premier élément du tableau alphas, du tableau ratios, etc.

Considérez le filtre de rayonnement dégradé comme un rayonnement émanant du centre de l’objet (si la valeur distance est définie sur 0), avec des bandes de couleurs se mêlant les unes aux autres pour constituer le dégradé. La première couleur du tableau colors est la couleur la plus proche de l’extérieur du rayonnement. La dernière couleur est la plus au centre du rayonnement.

Chaque valeur du tableau ratios définit l’emplacement de la couleur sur le rayon du dégradé, 0 représentant le point le plus éloigné et 255, le point le plus proche du centre du dégradé. Les valeurs de ratio s’échelonnent progressivement de 0 à 255 pixels : par exemple [0, 64, 128, 200, 255]. Les valeurs comprises entre 0 et 128 apparaissent sur les bords extérieurs du rayonnement. Les valeurs comprises entre 129 et 255 apparaissent à l’intérieur du rayonnement. Selon les valeurs de ratio des couleurs et la valeur type du filtre, les couleurs du filtre peuvent être obscurcies par l’objet auquel le filtre est appliqué.

Dans le code et l’image ci-dessous, un filtre est appliqué à un cercle noir animé, le type étant défini sur la valeur "full". Pour les besoins de la démonstration, la première couleur du tableau colors, rose, a une valeur alpha de 1 pour qu’elle se détache bien sur le fond blanc du document (dans la pratique, vous ne choisirez probablement pas la première couleur ainsi). La dernière couleur du tableau, jaune, cache le cercle noir auquel le filtre est appliqué :

	var colors:Array = [0xFFCCFF, 0x0000FF, 0x9900FF, 0xFF0000, 0xFFFF00];
	var alphas:Array = [1, 1, 1, 1, 1];
	var ratios:Array = [0, 32, 64, 128, 225];
	var myGGF:GradientGlowFilter = new GradientGlowFilter(0, 0, colors, alphas, ratios, 50, 50, 1, 2, "full", false);
	

Pour obtenir un effet de transparence homogène sur le fond de votre document lorsque vous définissez la valeur type sur "outer" ou "full", définissez la première couleur du tableau comme identique à celle de l’arrière-plan du document, ou définissez la valeur alpha de la première couleur sur 0. Ces deux techniques entraînent le mélange du filtre avec l’arrière-plan.

Deux petites modifications au code peuvent se traduire par un effet du rayonnement complètement différent et ce, même si les tableaux ratios et colors restent les mêmes. Définissez la valeur alpha de la première colonne du tableau sur 0 pour que le filtre se mélange à l’arrière-plan blanc du document ; puis définissez la propriété type sur "outer" ou "inner". Observez le résultat sur les illustrations suivantes.

N’oubliez pas que la répartition des couleurs dans le dégradé varie en fonction des valeurs des propriétés blurX, blurY, strength et quality, ainsi que des valeurs de ratios.

GradientGlowFilter.colorsGradientGlowFilter.alphasflash.display.Graphics.beginGradientFill()
strength Intensité de l’empreinte ou recouvrement.Number Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste entre le rayonnement et l’arrière-plan est important. Les valeurs valides sont comprises entre 0 et 255. La valeur 0 signifie que le filtre n’est pas appliqué. La valeur par défaut est 1. type Positionnement de l’effet de filtre.StringLa chaîne prend la valeur null lors de sa définition. TypeErrorTypeError Positionnement de l’effet de filtre. Les valeurs possibles sont les constantes flash.filters.BitmapFilterType :
  • BitmapFilterType.OUTER, rayonnement sur le bord extérieur de l’objet ;
  • BitmapFilterType.INNER, rayonnement sur le bord intérieur de l’objet, il s’agit de la valeur par défaut.
  • BitmapFilterType.FULL, rayonnement au-dessus de l’objet.
ColorMatrixFilter La classe ColorMatrixFilter vous permet d’appliquer une transformation de matrice 4 x 5 aux valeurs de couleur RVBA et alpha de chaque pixel de l’image d’entrée afin d’obtenir un résultat intégrant un nouvel ensemble de valeurs de couleur RVBA et alpha. Applique une transformation de matrice de couleurs sur les valeurs de couleur et de transparence alpha de chaque pixel. flash.filters:BitmapFilter La classe ColorMatrixFilter vous permet d’appliquer une transformation de matrice 4 x 5 aux valeurs de couleur RVBA et alpha de chaque pixel de l’image d’entrée afin d’obtenir un résultat intégrant un nouvel ensemble de valeurs de couleur RVBA et alpha. Cette classe permet d’effectuer des modifications de saturation et des rotations de teinte, de définir la luminance de l’alpha et de produire d’autres effets. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

Remarque : pour les valeurs RVBA, l’octet le plus significatif représente la valeur du canal rouge, suivie de vert, bleu et alpha.

Pour créer un filtre matrice de couleurs, utilisez la syntaxe new ColorMatrixFilter(). L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux clips, champs de texte, boutons et vidéo, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la propriété cacheAsBitmap de cet objet est réglée sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, lorsque vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue atteint les dimensions maximales.

L’exemple suivant applique différents filtres matrice de couleurs à un fichier image. Le constructeur de filtres appelle quatre fois buildChild() pour charger et afficher quatre occurrences de l’image. Le premier appel à buildChild() prend null comme argument, en n’appliquant aucun filtre à la première occurrence. Chaque appel ultérieur à buildChild() prend comme argument une fonction qui applique un filtre matrice de couleurs différent à chaque occurrence ultérieure de l’image.

La fonction buildChild() crée un nouvel objet Loader appelé loader. Pour chaque appel à buildChild(), joignez un écouteur d’événements à l’objet Loader pour écouter les événements complete qui sont gérés par la fonction transmise à buildChild().

Les fonctions applyRed(), applyGreen() et applyBlue() utilisent différentes valeurs pour le tableau matrix afin d’obtenir différents effets.

Remarque : pour de meilleurs résultats, utilisez une image d’une largeur de 80 pixels environ. Le nom et l’emplacement du fichier image doivent correspondre à la valeur que vous transmettez à la propriété url. En l’occurrence, dans l’exemple, la valeur transmise à url pointe vers un fichier image nommé « Image.jpg » qui est situé dans le même répertoire que votre fichier SWF.

package { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.filters.ColorMatrixFilter; import flash.net.URLRequest; public class ColorMatrixFilterExample extends Sprite { private var size:uint = 140; private var url:String = "Image.jpg"; public function ColorMatrixFilterExample() { buildChild(null); buildChild(applyRed); buildChild(applyGreen); buildChild(applyBlue); } private function buildChild(loadHandler:Function):void { var loader:Loader = new Loader(); loader.x = numChildren * size; loader.y = size; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); if (loadHandler != null) { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); } var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function applyRed(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = new Array(); matrix = matrix.concat([1, 0, 0, 0, 0]); // red matrix = matrix.concat([0, 0, 0, 0, 0]); // green matrix = matrix.concat([0, 0, 0, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha applyFilter(child, matrix); } private function applyGreen(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = new Array(); matrix = matrix.concat([0, 0, 0, 0, 0]); // red matrix = matrix.concat([0, 1, 0, 0, 0]); // green matrix = matrix.concat([0, 0, 0, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha applyFilter(child, matrix); } private function applyBlue(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = new Array(); matrix = matrix.concat([0, 0, 0, 0, 0]); // red matrix = matrix.concat([0, 0, 0, 0, 0]); // green matrix = matrix.concat([0, 0, 1, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha applyFilter(child, matrix); } private function applyFilter(child:DisplayObject, matrix:Array):void { var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix); var filters:Array = new Array(); filters.push(filter); child.filters = filters; } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.BitmapData.getPixel()flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapColorMatrixFilter Initialise une nouvelle occurrence de ColorMatrixFilter avec les paramètres spécifiés.matrixArraynullTableau de 20 éléments organisés en matrice de 4 x 5. Initialise une nouvelle occurrence ColorMatrixFilter. Initialise une nouvelle occurrence de ColorMatrixFilter avec les paramètres spécifiés. clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de ColorMatrixFilter dont les propriétés sont toutes identiques à celles de l’occurrence d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. matrix Tableau de 20 éléments pour la transformation de couleurs 4 x 5.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeError Tableau de 20 éléments pour la transformation de couleurs 4 x 5. Il est impossible de changer la propriété matrix directement en modifiant sa valeur (par exemple, myFilter.matrix[2] = 1;). A la place, extrayez une référence au tableau, effectuez la modification de la référence et restaurez la valeur.

Le filtre matrice de couleurs sépare chaque pixel d’origine en composants rouge, vert, bleu et alpha comme suit : srcR, srcG, srcB, srcA. Pour calculer le résultat des quatre canaux, la valeur de chaque pixel de l’image est multipliée par les valeurs de la matrice de transformation. Un décalage, compris entre -255 et 255, peut éventuellement être ajouté à chaque résultat (le cinquième élément de chaque ligne de la matrice). Le filtre associe les composants de couleur pour former un pixel unique et renvoie le résultat. Dans la formule suivante, les éléments a[0] à a[19] correspondent aux entrées 0 à 19 du tableau de 20 éléments qui est transmis à la propriété matrix :

	redResult   = (a[0]  ~~ srcR) + (a[1]  ~~ srcG) + (a[2]  ~~ srcB) + (a[3]  ~~ srcA) + a[4]
	greenResult = (a[5]  ~~ srcR) + (a[6]  ~~ srcG) + (a[7]  ~~ srcB) + (a[8]  ~~ srcA) + a[9]
	blueResult  = (a[10] ~~ srcR) + (a[11] ~~ srcG) + (a[12] ~~ srcB) + (a[13] ~~ srcA) + a[14]
	alphaResult = (a[15] ~~ srcR) + (a[16] ~~ srcG) + (a[17] ~~ srcB) + (a[18] ~~ srcA) + a[19]
	

Pour chaque valeur de couleur du tableau, la valeur 1 signifie que 100 % de ce canal est envoyé en sortie, préservant la valeur du canal de couleur.

Les calculs sont effectués sur des valeurs de couleur non multipliées. Si le graphique d’entrée est constitué de valeurs de couleur prémultipliées, celles-ci sont automatiquement converties en valeurs de couleur non multipliées en vue de cette opération.

Deux modes optimisés sont disponibles :

Alpha uniquement. Quand vous transmettez au filtre une matrice qui ajuste uniquement le composant alpha, comme indiqué ici, le filtre optimise ses performances :

	    1 0 0 0 0
	    0 1 0 0 0
	    0 0 1 0 0
	    0 0 0 N 0  (where N is between 0.0 and 1.0)
	

Version plus rapide. Disponible uniquement sur les processeurs dotés d’un accélérateur SSE/Altivec (tels qu’Intel® Pentium® 3 et version ultérieure, Apple® G4 et version ultérieure). L’accélérateur est utilisé quand les termes de multiplicateur sont compris entre -15,99 et 15,99, et les termes d’additionneur a[4], a[9], a[14] et a[19] sont compris entre -8 000 et 8 000.

DisplacementMapFilter La classe DisplacementMapFilter utilise les valeurs de pixels de l’objet BitmapData spécifié (appelé image de mappage du déplacement) pour déplacer un objet.Déplace l’objet d’origine auquel le filtre s’applique. flash.filters:BitmapFilter La classe DisplacementMapFilter utilise les valeurs de pixels de l’objet BitmapData spécifié (appelé displacement map image) pour déplacer un objet. Vous pouvez utiliser ce filtre pour appliquer un effet voilé ou tacheté à tout objet héritant des propriétés de la classe DisplayObject, tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres à un objet d’affichage, utilisez la propriété filters de cet objet. Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la valeur de la propriété cacheAsBitmap de cet objet est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Le filtre utilise la formule suivante :

dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) ~~ scaleX) / 256, y + ((componentY(x, y) - 128) ~~scaleY) / 256)

componentX(x, y) extrait la valeur de couleur de la propriété componentX de la propriété mapBitmap, à (x - mapPoint.x ,y - mapPoint.y).

L’image de mappage utilisée par le filtre est redimensionnée en fonction de l’échelle de la scène. Elle n’est en aucun cas redimensionnée lorsque l’objet l’est.

Ce filtre prend en charge le redimensionnement de la scène. Mais le redimensionnement général, la rotation et l’inclinaison ne sont pas gérés. Si l’objet lui-même est redimensionné (si les propriétés scaleX et scaleY ne correspondent pas à 1,0), l’effet du filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

L’exemple suivant dessine un carré avec un remplissage en dégradé radial, une zone de texte et un objet BitmapData sont créés et un filtre de mappage du déplacement est appliqué à l’objet DisplacementMapFilterExample. La séquence des principales tâches de cet exemple s’organise comme suit :
  1. La classe définit des variables pour la couleur de l’arrière-plan, le libellé de la zone de texte, ainsi que pour la taille et le décalage qui seront utilisés dans diverses fonctions.
  2. La fonction constructeur appelle la méthode draw() qui utilise les méthodes de la classe Graphics pour dessiner un carré avec un remplissage en dégradé radial. Remarquez que graphics est une propriété de l’objet DisplacementMapFilterExample qui étend Sprite.
  3. La fonction constructeur appelle la méthode createLabel() qui crée une zone de texte affichant la valeur de labelText et l’ajoute à la liste d’affichage.
  4. La fonction constructeur appelle la méthode createFilter() qui effectue les actions suivantes :
    • Création d’une variable nommée filter pour l’objet filtre.
    • Appel de la méthode getDisplacementMapFilter() et attribution de sa valeur renvoyée à la variable filter.
    • Transmission de filter à la propriété filters de l’objet DisplacementFilterExample (la classe principale).
  5. La méthode getBitmapFilter() crée un objet BitmapData nommé mapBitmap et lui attribue les résultat de la méthode createBitmapData(). L’objet mapBitmap, parallèlement à d’autres variables, définit un nouveau filtre de mappage du déplacement.
  6. La méthode createBitmapData() crée un nouvel objet BitmapData basé sur le contenu actuel de l’objet DisplacementMapFilterExample. Une nouvelle image bitmap est créée d’après bitmapData et est ajoutée à la scène.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.DisplacementMapFilter; import flash.filters.DisplacementMapFilterMode; import flash.geom.Matrix; import flash.geom.Point; import flash.text.TextField; public class DisplacementMapFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 200; private var offset:uint = 90; private var labelText:String = "Watch the text bend with the displacement map"; public function DisplacementMapFilterExample() { draw(); createLabel(); createFilter(); } private function createFilter():void { var filter:BitmapFilter = getBitmapFilter(); filters = new Array(filter); } private function getBitmapFilter():BitmapFilter { var mapBitmap:BitmapData = createBitmapData(); var mapPoint:Point = new Point(0, 0); var channels:uint = BitmapDataChannel.RED; var componentX:uint = channels; var componentY:uint = channels; var scaleX:Number = 0.5; var scaleY:Number = -30; var mode:String = DisplacementMapFilterMode.CLAMP; var color:uint = 0; var alpha:Number = 0; return new DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, scaleX, scaleY, mode, color, alpha); } private function draw():void { var matrix:Matrix = new Matrix(); matrix.createGradientBox(size, size); graphics.beginGradientFill(GradientType.RADIAL, [0xFF0000, 0x0000FF], [100, 100], [55, 200], matrix, SpreadMethod.PAD); graphics.drawRect(0, 0, size, size); } private function createBitmapData():BitmapData { var bitmapData:BitmapData = new BitmapData(size, size, true, bgColor); bitmapData.draw(this, new Matrix()); var bitmap:Bitmap = new Bitmap(bitmapData); bitmap.x = size; addChild(bitmap); return bitmapData; } private function createLabel():void { var tf:TextField = new TextField(); tf.text = labelText; tf.y = offset; tf.width = size; addChild(tf); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapDisplacementMapFilter Initialise une occurrence de DisplacementMapFilter avec les paramètres spécifiés.mapBitmapflash.display:BitmapDatanullObjet BitmapData contenant les données de mappage du déplacement. mapPointflash.geom:PointnullValeur contenant le décalage du coin supérieur gauche de l’objet d’affichage cible par rapport au coin supérieur gauche de l’image de mappage. componentXuint0Décrit le canal de couleur à utiliser dans l’image de mappage pour déplacer le résultat x. Les valeurs possibles sont les constantes BitmapDataChannel. componentYuint0Décrit le canal de couleur à utiliser dans l’image de mappage pour déplacer le résultat y. Les valeurs possibles sont les constantes BitmapDataChannel. scaleXNumber0.0Multiplicateur à utiliser pour redimensionner le résultat du déplacement x à partir du calcul de mappage. scaleYNumber0.0Multiplicateur à utiliser pour redimensionner le résultat du déplacement y à partir du calcul de mappage. modeStringwrapMode du filtre. Les valeurs possibles sont les constantes DisplacementMapFilterMode. coloruint0Spécifie la couleur à utiliser pour les déplacements en dehors des limites. La plage valide est comprise entre 0.0 et 1.0. Utilisez ce paramètre si la propriété mode est réglée sur DisplacementMapFilterMode.COLOR. alphaNumber0.0Spécifie la valeur alpha à utiliser pour les déplacements en dehors des limites. Elle est spécifiée en tant que valeur normalisée comprise entre 0,0 et 1,0. Par exemple, 0,25 définit une valeur de transparence de 25 %. Utilisez ce paramètre si la propriété mode est réglée sur DisplacementMapFilterMode.COLOR. Initialise une occurrence DisplacementMapFilter. Initialise une occurrence de DisplacementMapFilter avec les paramètres spécifiés. flash.display.BitmapDataChannelflash.filters.DisplacementMapFilterModeclone Renvoie une copie de cet objet filtre.Nouvelle occurrence de DisplacementMapFilter dont les propriétés sont toutes identiques à celles de l’occurrence d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. alpha Spécifie la transparence alpha à utiliser pour les déplacements en dehors des limites.Number Spécifie la transparence alpha à utiliser pour les déplacements en dehors des limites. Elle est spécifiée en tant que valeur normalisée comprise entre 0,0 et 1,0. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 0. Utilisez cette propriété si la propriété mode est réglée sur DisplacementMapFilterMode.COLOR. color Spécifie la couleur à utiliser pour les déplacements en dehors des limites.uint Spécifie la couleur à utiliser pour les déplacements en dehors des limites. La plage valide est comprise entre 0.0 et 1.0. Les valeurs sont au format hexadécimal. La valeur par défaut pour color est 0. Utilisez cette propriété si la propriété mode est réglée sur DisplacementMapFilterMode.COLOR. componentX Décrit le canal de couleur à utiliser dans l’image de mappage pour déplacer le résultat x.uintCanal couleur à utiliser pour déplacer le résultat x. Décrit le canal de couleur à utiliser dans l’image de mappage pour déplacer le résultat x. Les valeurs possibles sont les constantes BitmapDataChannel :
  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.RED
flash.display.BitmapDataChannel
componentY Décrit le canal de couleur à utiliser dans l’image de mappage pour déplacer le résultat y.uint Décrit le canal de couleur à utiliser dans l’image de mappage pour déplacer le résultat y. Les valeurs possibles sont les constantes BitmapDataChannel :
  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.RED
flash.display.BitmapDataChannel
mapBitmap Objet BitmapData contenant les données de mappage du déplacement.flash.display:BitmapDataL’objet BitmapData prend la valeur null lors de sa définition. TypeErrorTypeError Objet BitmapData contenant les données de mappage du déplacement. flash.display.BitmapDatamapPoint Valeur contenant le décalage du coin supérieur gauche de l’objet d’affichage cible par rapport au coin supérieur gauche de l’image de mappage.flash.geom:PointLe Point prend la valeur null lors de sa définition. TypeErrorTypeError Valeur contenant le décalage du coin supérieur gauche de l’objet d’affichage cible par rapport au coin supérieur gauche de l’image de mappage. flash.geom.Pointmode Mode du filtre. StringLa chaîne prend la valeur null lors de sa définition. TypeErrorTypeErrorLa chaîne de mode ne correspond pas à un des types gérés. ArgumentErrorArgumentError Mode du filtre. Les valeurs possibles sont les constantes DisplacementMapFilterMode :
  • DisplacementMapFilterMode.WRAP — Ramène la valeur de déplacement à l’autre côté de l’image source.
  • DisplacementMapFilterMode.CLAMP — Corrige la valeur de déplacement en fonction du bord de l’image source.
  • DisplacementMapFilterMode.IGNORE — Si la valeur de déplacement est hors limites, ignore le déplacement et utilise le pixel source.
  • DisplacementMapFilterMode.COLOR — Si la valeur de déplacement est en dehors de l’image, remplace les valeurs des propriétés color et alpha.
flash.filters.DisplacementMapFilterMode
scaleX Multiplicateur à utiliser pour redimensionner le résultat du déplacement x à partir du calcul de mappage.Number Multiplicateur à utiliser pour redimensionner le résultat du déplacement x à partir du calcul de mappage. scaleY Multiplicateur à utiliser pour redimensionner le résultat du déplacement y à partir du calcul de mappage.Number Multiplicateur à utiliser pour redimensionner le résultat du déplacement y à partir du calcul de mappage.
BitmapFilterType La classe BitmapFilterType contient des valeurs permettant de définir le type d’un objet BitmapFilter.Object La classe BitmapFilterType contient des valeurs permettant de définir le type d’un objet BitmapFilter. L’exemple suivant dessine un carré gris auquel un objet BevelFilter est appliqué. L’exemple définit la propriété type en utilisant la constante BitmapFilterType.HIGH. package { import flash.display.Sprite; import flash.filters.BevelFilter; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; public class BitmapFilterTypeExample extends Sprite { private var bgColor:uint = 0x999999; private var size:uint = 80; private var offset:uint = 50; public function BitmapFilterTypeExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var distance:Number = 5; var angleInDegrees:Number = 45; var highlightColor:Number = 0xCCCCCC; var highlightAlpha:Number = 0.8; var shadowColor:Number = 0x808080; var shadowAlpha:Number = 0.8; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 5; var quality:Number = BitmapFilterQuality.HIGH; var type:String = BitmapFilterType.INNER; var knockout:Boolean = false; return new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } } BevelFilterGradientBevelFilterGradientGlowFilterFULL Définit le paramètre qui applique un filtre à toute la superficie d’un objet.fullString Définit le paramètre qui applique un filtre à toute la superficie d’un objet. INNER Définit le paramètre qui applique un filtre à l’intérieur d’un objet.innerString Définit le paramètre qui applique un filtre à l’intérieur d’un objet. OUTER Définit le paramètre qui applique un filtre à l’extérieur d’un objet.outerString Définit le paramètre qui applique un filtre à l’extérieur d’un objet. DropShadowFilter La classe DropShadowFilter permet d’ajouter un effet d’ombre portée aux objets d’affichage.flash.filters:BitmapFilter La classe DropShadowFilter permet d’ajouter un effet d’ombre portée aux objets d’affichage. L’algorithme d’ombre est dérivé du même filtre que celui utilisé par le filtre de flou. Vous disposez de plusieurs options pour définir le style de l’ombre portée, notamment l’ombre intérieure ou extérieure et le mode de masquage. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux objets d’affichage, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la valeur de la propriété cacheAsBitmap de cet objet est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge le redimensionnement de la scène. Cependant, il ne prend pas en charge le redimensionnement général, la rotation ni l’inclinaison. Si l’objet est redimensionné (si les propriétés scaleX et scaleY ne sont pas réglées sur 1,0), le filtre ne l’est pas. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, si vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant crée un carré jaune auquel une ombre portée est appliquée. La séquence des tâches principales de cet exemple s’organise comme suit :
  1. Déclaration des trois propriétés qui sont utilisées pour dessiner le carré auquel le filtre est appliqué.
  2. Création de la fonction constructeur. Le constructeur appelle la méthode draw() qui utilise des méthodes de la classe Graphics, accessibles par le biais de la propriété graphics de Sprite, pour dessiner un carré orange.
  3. Dans le constructeur, déclaration d’une variable filter comme objet BitmapFilter et attribution de celui-ci à la valeur renvoyée d’un appel à getBitmapFilter(). La méthode getBitmapFilter() définit le filtre d’ombre portée utilisé.
  4. Création d’un nouvel objet Array myFilters et ajout de filter au tableau. Attribution du tableau myFilters à la propriété filters de l’objet DropShadowFilterExample. Ceci a pour effet d’appliquer tous les filtres trouvés dans myFilters, en l’occurrence filter uniquement.
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.DropShadowFilter; public class DropShadowFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function DropShadowFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var color:Number = 0x000000; var angle:Number = 45; var alpha:Number = 0.8; var blurX:Number = 8; var blurY:Number = 8; var distance:Number = 15; var strength:Number = 0.65; var inner:Boolean = false; var knockout:Boolean = false; var quality:Number = BitmapFilterQuality.HIGH; return new DropShadowFilter(distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapDropShadowFilter Crée une occurrence de DropShadowFilter avec les paramètres spécifiés.distanceNumber4.0Distance de décalage de l’ombre, en pixels. angleNumber45Angle de l’ombre, de 0 à 360° (virgule flottante). coloruint0Couleur de l’ombre, au format hexadécimal 0xRRGGBB. La valeur par défaut est 0x000000. alphaNumber1.0Valeur de transparence alpha de la couleur d’ombre. Les valeurs valides sont comprises entre 0.0 et 1.0. Par exemple, 0,25 définit une valeur de transparence de 25 %. blurXNumber4.0Quantité de flou horizontal. Les valeurs possibles sont comprises entre 0 et 255.0 (virgule flottante). blurYNumber4.0Quantité de flou vertical. Les valeurs possibles sont comprises entre 0 et 255.0 (virgule flottante). strengthNumber1.0Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste est important entre l’ombre et l’arrière-plan. Les valeurs possibles sont comprises entre 0 et 255.0. qualityint1Nombre d’applications du filtre. Utilisez les constantes BitmapFilterQuality :
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Pour plus d’informations sur ces valeurs, voir la description de la propriété quality.

innerBooleanfalseIndique si l’ombre est intérieure ou non. La valeur true spécifie une ombre intérieure. La valeur false renvoie une ombre extérieure au niveau des bords extérieurs de l’objet. knockoutBooleanfalseApplique un effet de masquage (true) qui, en réalité, rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. hideObjectBooleanfalseIndique si l’objet est caché ou non. La valeur true indique que l’objet lui-même n’est pas tracé et que seule l’ombre est visible.
Crée une occurrence de DropShadowFilter avec les paramètres spécifiés.
flash.filters.BitmapFilterQuality
clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de DropShadowFilter dont les propriétés sont toutes identiques à celles de l’occurrence de DropShadowFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. alpha Valeur de transparence alpha de la couleur d’ombre.Number Valeur de transparence alpha de la couleur d’ombre. Les valeurs valides sont comprises entre 0.0 et 1.0. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1.0. angle Angle de l’ombre.Number Angle de l’ombre. Les valeurs valides sont comprises entre 0 et 360 degrés (virgule flottante). La valeur par défaut est 45. blurX Quantité de flou horizontal.Number Quantité de flou horizontal. Les valeurs valides sont comprises entre 0 et 255.0 (virgule flottante). La valeur par défaut est 4.0. blurY Quantité de flou vertical.Number Quantité de flou vertical. Les valeurs valides sont comprises entre 0 et 255.0 (virgule flottante). La valeur par défaut est 4.0. color Couleur de l’ombre.uint Couleur de l’ombre. Les valeurs valides sont au format hexadécimal 0xRRGGBB. La valeur par défaut est 0x000000. distance Distance de décalage de l’ombre, en pixels.Number Distance de décalage de l’ombre, en pixels. La valeur par défaut est 4,0 (virgule flottante). hideObject Indique si l’objet est caché ou non.Boolean Indique si l’objet est caché ou non. Une valeur true indique que l’objet lui-même n’est pas tracé et que seule l’ombre est visible. La valeur par défaut est false, soit montrer l’objet. inner Indique si l’ombre est intérieure ou non.Boolean Indique si l’ombre est intérieure ou non. La valeur true indique une ombre intérieure. La valeur par défaut est false, renvoyant une ombre extérieure au niveau des bords extérieurs de l’objet. knockout Applique un effet de masquage (true) qui, en réalité, rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document.Boolean Applique un effet de masquage (true) qui, en réalité, rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. La valeur par défaut est false (pas de masquage). quality Nombre d’applications du filtre.int Nombre d’applications du filtre. La valeur par défaut est BitmapFilterQuality.LOW, ce qui revient à appliquer le filtre une seule fois. La valeur BitmapFilterQuality.MEDIUM applique le filtre deux fois. La valeur BitmapFilterQuality.HIGH l’applique trois fois. Les rendus des filtres de valeurs faibles sont obtenus plus rapidement.

Pour la plupart des applications, une valeur de qualité faible, moyenne ou élevée est suffisante. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour obtenir différents effets, mais le rendu des valeurs les plus élevées est moins rapide. Sans augmenter la valeur de quality, vous pouvez généralement obtenir un effet similaire, avec un rendu plus rapide, en augmentant simplement les valeurs des propriétés blurX et blurY.

flash.filters.BitmapFilterQuality
strength Intensité de l’empreinte ou recouvrement.Number Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste est important entre l’ombre et l’arrière-plan. Les valeurs valides sont comprises entre 0 et 255.0. La valeur par défaut est de 1.0.
BitmapFilterQuality La classe BitmapFilterQuality contient des valeurs permettant de définir la qualité de rendu d’un objet BitmapFilter.Object La classe BitmapFilterQuality contient des valeurs permettant de définir la qualité de rendu d’un objet BitmapFilter. L’exemple suivant dessine un carré gris auquel un objet BevelFilter est appliqué. L’exemple définit la propriété quality en utilisant la constante BitmapFilterQuality.HIGH. package { import flash.display.Sprite; import flash.filters.BevelFilter; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; public class BitmapFilterQualityExample extends Sprite { private var bgColor:uint = 0x999999; private var size:uint = 80; private var offset:uint = 50; public function BitmapFilterQualityExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var distance:Number = 5; var angleInDegrees:Number = 45; var highlightColor:Number = 0xCCCCCC; var highlightAlpha:Number = 0.8; var shadowColor:Number = 0x808080; var shadowAlpha:Number = 0.8; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 5; var quality:Number = BitmapFilterQuality.HIGH; var type:String = BitmapFilterType.INNER; var knockout:Boolean = false; return new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } } BevelFilterBlurFilterGlowFilterDropShadowFilterGradientBevelFilterGradientGlowFilterHIGH Définit le paramètre de filtre de qualité supérieure.3int Définit le paramètre de filtre de qualité supérieure. LOW Définit le paramètre de filtre de qualité inférieure.1int Définit le paramètre de filtre de qualité inférieure. MEDIUM Définit le paramètre de filtre de qualité moyenne.2int Définit le paramètre de filtre de qualité moyenne. DisplacementMapFilterMode La classe DisplacementMapFilterMode fournit des valeurs à la propriété mode de la classe DisplacementMapFilter.Object La classe DisplacementMapFilterMode fournit des valeurs à la propriété mode de la classe DisplacementMapFilter. CLAMP Corrige la valeur de déplacement en fonction du bord de l’image source.clampString Corrige la valeur de déplacement en fonction du bord de l’image source. Utilisez avec la propriété DisplacementMapFilter.mode. flash.filters.DisplacementMapFilter.modeCOLOR Si la valeur de déplacement est en dehors de l’image, remplace les valeurs des propriétés color et alpha.colorString Si la valeur de déplacement est en dehors de l’image, remplace les valeurs des propriétés color et alpha. Utilisez avec la propriété DisplacementMapFilter.mode. flash.filters.DisplacementMapFilter.modeIGNORE Si la valeur de déplacement est hors limites, ignore le déplacement et utilise le pixel source.ignoreString Si la valeur de déplacement est hors limites, ignore le déplacement et utilise le pixel source. Utilisez avec la propriété DisplacementMapFilter.mode. flash.filters.DisplacementMapFilter.modeWRAP Ramène la valeur de déplacement à l’autre côté de l’image source.wrapString Ramène la valeur de déplacement à l’autre côté de l’image source. Utilisez avec la propriété DisplacementMapFilter.mode. flash.filters.DisplacementMapFilter.modeBevelFilter La classe BevelFilter permet d’appliquer un effet de biseau à des objets d’affichage.Ajoute un niveau de biseautage. flash.filters:BitmapFilter La classe BevelFilter permet d’appliquer un effet de biseau à des objets d’affichage. L’effet de biseau donne aux objets tels que des boutons un aspect tridimensionnel. Vous pouvez personnaliser l’aspect du biseau grâce à différentes couleurs d’éclairage et d’ombre, à la quantité de flou sur le biseau, à l’angle du biseau, au positionnement du biseau et à un effet de masquage. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

Pour créer un filtre, utilisez le constructeur new BevelFilter(). L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux clips, champs de texte, boutons et vidéo, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la valeur de la propriété cacheAsBitmap de cet objet est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge le redimensionnement de la scène. Cependant, il ne prend pas en charge le redimensionnement général, la rotation ni l’inclinaison. Si l’objet lui-même est redimensionné (si les propriétés scaleX et scaleY ne sont pas définies sur 100 %), l’effet de filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, si vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant crée un carré jaune foncé et applique un biseau d’une couleur de surbrillance (0xFFFF00) jaune vif avec une ombre (0x0000FF) bleue. La séquence des principales tâches de cet exemple s’organise comme suit :
  1. Importation des classes requises.
  2. Déclaration des trois propriétés utilisées dans la fonction draw() qui dessine l’objet auquel le filtre de biseau est appliqué.
  3. Création de la fonction constructeur BevelFilterExample() qui effectue les actions suivantes :
    • Appel de la fonction draw() qui est déclarée ultérieurement.
    • Déclaration d’une variable filter comme objet BitmapFilter et attribution de celui-ci à la valeur renvoyée d’un appel à getBitmapFilter().
    • Création d’un nouvel objet Array myFilters, ajout de filter au tableau, puis attribution de myFilters à la propriété filters de l’objet BevelFilterExample. Ceci a pour effet d’appliquer tous les filtres trouvés dans myFilters, en l’occurrence filter uniquement.
  4. Création de la fonction getBitmapFilter afin de créer et de définir des propriétés pour le filtre.
  5. Création de la fonction draw(). Cette fonction utilise des méthodes de la classe Graphics, accessibles par le biais de la propriété graphics de la classe Sprite, pour dessiner le carré.
package { import flash.display.Sprite; import flash.filters.BevelFilter; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; public class BevelFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function BevelFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var distance:Number = 5; var angleInDegrees:Number = 45; var highlightColor:Number = 0xFFFF00; var highlightAlpha:Number = 0.8; var shadowColor:Number = 0x0000FF; var shadowAlpha:Number = 0.8; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 5; var quality:Number = BitmapFilterQuality.HIGH; var type:String = BitmapFilterType.INNER; var knockout:Boolean = false; return new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.BitmapData.applyFilter()BevelFilter Initialise une nouvelle occurrence de BevelFilter avec les paramètres spécifiés.distanceNumber4.0Distance de décalage du biseau, en pixels (virgule flottante). angleNumber45Angle du biseau, de 0 à 360 degrés. highlightColoruint0xFFFFFFCouleur de surbrillance du biseau, 0xRRGGBB. highlightAlphaNumber1.0Valeur de transparence alpha de la couleur d’éclairage. Les valeurs valides sont comprises entre 0.0 et 1.0. Par exemple, 0,25 définit une valeur de transparence de 25 %. shadowColoruint0x000000Couleur d’ombre du biseau, 0xRRGGBB. shadowAlphaNumber1.0Valeur de transparence alpha de la couleur d’ombre. Les valeurs valides sont comprises entre 0.0 et 1.0. Par exemple, 0,25 définit une valeur de transparence de 25 %. blurXNumber4.0Quantité de flou horizontal, en pixels. Les valeurs possibles sont comprises entre 0 et 255.0 (virgule flottante). blurYNumber4.0Quantité de flou vertical en pixels. Les valeurs possibles sont comprises entre 0 et 255.0 (virgule flottante). strengthNumber1Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste est important entre le biseau et l’arrière-plan. Les valeurs possibles sont comprises entre 0 et 255.0. qualityint1Qualité du biseau. Les valeurs gérées sont comprises entre 0 et 15, mais pour la plupart des applications, vous pouvez utiliser les constantes BitmapFilterQuality :
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Le rendu des filtres de valeur faible est plus rapide. Vous pouvez utiliser les autres valeurs numériques disponibles pour obtenir des effets différents.

typeStringinnerLe type de biseau. Les valeurs gérées sont les constantes BitmapFilterType : BitmapFilterType.INNER, BitmapFilterType.OUTER ou BitmapFilterType.FULL. knockoutBooleanfalseApplique un effet de masquage (true) qui, en réalité, rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document.
Initialise une nouvelle occurrence de BevelFilter avec les paramètres spécifiés.
BitmapFilterQualityBitmapFilterType
clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de BevelFilter dont toutes les propriétés sont identiques à celles de l’occurrence de BevelFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. angle Angle du biseau.Number Angle du biseau. Les valeurs possibles sont comprises entre 0 et 360°. La valeur par défaut est 45°.

La valeur d’angle représente l’angle de la source lumineuse théorique éclairant l’objet et détermine l’emplacement de l’effet par rapport à ce dernier. Si la valeur de la propriété distance est définie sur 0, il n’y a pas d’effet de décalage par rapport à l’objet. La propriété angle n’a donc aucun effet.

blurX Quantité de flou horizontal, en pixels.Number Quantité de flou horizontal, en pixels. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurY Quantité de flou vertical, en pixels.Number Quantité de flou vertical, en pixels. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. distance La distance de décalage du biseau.Number La distance de décalage du biseau. Les valeurs valides sont en pixels (virgule flottante). La valeur par défaut est 4. highlightAlpha Valeur de transparence alpha de la couleur d’éclairage.Number Valeur de transparence alpha de la couleur d’éclairage. Cette valeur est spécifiée en tant que valeur normalisée comprise entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. highlightColor Couleur d’éclairage du biseau.uint Couleur d’éclairage du biseau. Les valeurs valides sont au format hexadécimal, 0xRRGGBB. La valeur par défaut est 0xFFFFFF. knockout Applique un effet de masquage (true) qui, en réalité, rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document.Boolean Applique un effet de masquage (true) qui, en réalité, rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. La valeur par défaut est false (pas de masquage). quality Nombre d’applications du filtre.int Nombre d’applications du filtre. La valeur par défaut est BitmapFilterQuality.LOW, ce qui revient à appliquer le filtre une seule fois. La valeur BitmapFilterQuality.MEDIUM applique le filtre deux fois. La valeur BitmapFilterQuality.HIGH l’applique trois fois. Les rendus des filtres de valeurs faibles sont obtenus plus rapidement.

Pour la plupart des applications, une valeur de quality faible, moyenne ou élevée est suffisante. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour obtenir différents effets, mais le rendu des valeurs les plus élevées est moins rapide. Sans augmenter la valeur de quality, vous pouvez généralement obtenir un effet similaire, avec un rendu plus rapide, en augmentant simplement les valeurs des propriétés blurX et blurY.

Vous pouvez utiliser les constantes BitmapFilterQuality suivantes pour spécifier les valeurs de la propriété quality :

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

shadowAlpha Valeur de transparence alpha de la couleur d’ombre.Number Valeur de transparence alpha de la couleur d’ombre. Cette valeur est spécifiée en tant que valeur normalisée comprise entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. shadowColor La couleur d’ombre du biseau.uint La couleur d’ombre du biseau. Les valeurs valides sont au format hexadécimal, 0xRRGGBB. La valeur par défaut est 0x000000. strength Intensité de l’empreinte ou recouvrement.Number Intensité de l’empreinte ou recouvrement. Les valeurs valides sont comprises entre 0 et 255. Plus la valeur est élevée, plus l’intensité des couleurs apparaît à l’impression et plus le contraste est important entre le biseau et l’arrière-plan. La valeur par défaut est 1. type Positionnement de l’effet de biseau sur l’objet.StringLa chaîne prend la valeur null lors de sa définition. TypeErrorTypeError Positionnement de l’effet de biseau sur l’objet. Les biseaux intérieurs et extérieurs sont placés au niveau des bords intérieurs ou extérieurs. Un biseau complet recouvre tout l’objet. Les valeurs gérées sont les constantes BitmapFilterType :
  • BitmapFilterType.INNER
  • BitmapFilterType.OUTER
  • BitmapFilterType.FULL
BitmapFilter La classe BitmapFilter est la classe de base pour tous les effets de filtrage d’image.Classe de base pour tous les effets de filtrage d’image. Object La classe BitmapFilter est la classe de base pour tous les effets de filtrage d’image.

Les classes BevelFilter, BlurFilter, ColorMatrixFilter, ConvolutionFilter, DisplacementMapFilter, DropShadowFilter, GlowFilter, GradientBevelFilter et GradientGlowFilter étendent toutes la classe BitmapFilter. Vous pouvez appliquer ces effets de filtre aux objets d’affichage.

Vous ne pouvez pas directement instancier ni étendre BitmapFilter.

L’exemple suivant montre comment plusieurs filtres peuvent être appliqués à un objet DisplayObject donné et suivis à l’aide de la propriété filters. package { import flash.display.Sprite; import flash.filters.*; public class BitmapFilterExample extends Sprite { public function BitmapFilterExample() { trace(this.filters.length); // 0 var tmpFilters:Array = this.filters; tmpFilters.push(FilterFactory.createFilter(FilterFactory.BEVEL_FILTER)); tmpFilters.push(FilterFactory.createFilter(FilterFactory.GLOW_FILTER)); this.filters = tmpFilters; trace(this.filters.length); // 2 trace(this.filters[0] is BitmapFilter); // true trace(this.filters[0] is BevelFilter); // true trace(this.filters[1] is BitmapFilter); // true trace(this.filters[1] is GlowFilter); // true } } } import flash.filters.*; class FilterFactory { public static var BEVEL_FILTER:String = "BevelFilter"; public static var BevelFilterConstructor:Class = BevelFilter; public static var BLUR_FILTER:String = "BlurFilter"; public static var BlurFilterConstructor:Class = BlurFilter; public static var COLOR_MATRIX_FILTER:String = "ColorMatrixFilter"; public static var ColorMatrixFilterConstructor:Class = ColorMatrixFilter; public static var CONVOLUTION_FILTER:String = "ConvolutionFilter"; public static var ConvolutionFilterConstructor:Class = ConvolutionFilter; public static var DISPLACEMENT_MAP_FILTER:String = "DisplacementMapFilter"; public static var DisplacementMapFilterConstructor:Class = DisplacementMapFilter; public static var DROP_SHADOW_FILTER:String = "DropShadowFilter"; public static var DropShadowFilterConstructor:Class = DropShadowFilter; public static var GLOW_FILTER:String = "GlowFilter"; public static var GlowFilterConstructor:Class = GlowFilter; public static var GRADIENT_BEVEL_FILTER:String = "GradientBevelFilter"; public static var GradientBevelFilterConstructor:Class = GradientBevelFilter; public static var GRADIENT_GLOW_FILTER:String = "GradientGlowFilter"; public static var GradientGlowFilterConstructor:Class = GradientGlowFilter; public static function createFilter(type:String):BitmapFilter { return new FilterFactory[type + "Constructor"](); } }
clone Renvoie un objet BitmapFilter qui est une copie exacte de l’objet BitmapFilter d’origine.Objet BitmapFilter. flash.filters:BitmapFilterUne copie de l’objet BitmapFilter. Renvoie un objet BitmapFilter qui est une copie exacte de l’objet BitmapFilter d’origine.
BlurFilter La classe BlurFilter permet d’appliquer un effet visuel de flou aux objets d’affichage.Effet de flou. flash.filters:BitmapFilter La classe BlurFilter permet d’appliquer un effet visuel de flou aux objets d’affichage. Un effet de flou adoucit les détails d’une image. Vous pouvez produire différents flous, d’un aspect doux et sans contours précis, à un flou gaussien dont l’aspect voilé produit le même effet que celui d’une image regardée à travers un verre semi-opaque. Quand la propriété quality de ce filtre est réglée sur faible, vous obtenez un aspect doux sans contours précis. Quand la propriété quality est élevée, l’effet se rapproche d’un filtre de flou gaussien. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

Pour créer un nouveau filtre, utilisez le constructeur new BlurFilter(). L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux clips, champs de texte, boutons et vidéo, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la propriété cacheAsBitmap de cet objet est réglée sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge le redimensionnement de la scène. Cependant, il ne prend pas en charge le redimensionnement général, la rotation ni l’inclinaison. Si l’objet lui-même est redimensionné (les propriétés scaleX et scaleY ne sont pas réglées sur 100 %), l’effet de filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, si vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant crée un carré jaune foncé auquel un filtre de flou gaussien est appliqué. La séquence des principales tâches de cet exemple s’organise comme suit :
  1. Importation des classes requises.
  2. Déclaration des trois propriétés utilisées dans la fonction draw() qui dessine l’objet auquel le filtre de flou est appliqué.
  3. Création de la fonction constructeur BlurFilterExample() qui effectue les actions suivantes :
    • Appel de la fonction draw() qui est déclarée ultérieurement.
    • Déclaration d’une variable filter comme objet BitmapFilter et attribution de celui-ci à la valeur renvoyée d’un appel à getBitmapFilter().
    • Création d’un nouvel objet Array myFilters, ajout de filter au tableau, puis attribution de myFilters à la propriété filters de l’objet BlurFilterExample. Ceci a pour effet d’appliquer tous les filtres trouvés dans myFilters, en l’occurrence filter uniquement.
  4. Création de la fonction getBitmapFilter() afin de créer et de définir des propriétés pour le filtre.
  5. Création de la fonction draw(). Cette fonction utilise des méthodes de la classe Graphics, accessibles par le biais de la propriété graphics de la classe Sprite, pour dessiner le carré.
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BlurFilter; public class BlurFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function BlurFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var blurX:Number = 30; var blurY:Number = 30; return new BlurFilter(blurX, blurY, BitmapFilterQuality.HIGH); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.BitmapData.applyFilter()BlurFilter Initialise le filtre avec les paramètres spécifiés.blurXNumber4.0Quantité de flou à appliquer horizontalement. Les valeurs possibles sont comprises entre 0 et 255,0 (valeur en virgule flottante). blurYNumber4.0Quantité de flou à appliquer verticalement. Les valeurs possibles sont comprises entre 0 et 255,0 (valeur en virgule flottante). qualityint1Nombre d’applications du filtre. Vous pouvez définir la qualité à l’aide des constantes BitmapFilterQuality :
  • flash.filters.BitmapFilterQuality.LOW
  • flash.filters.BitmapFilterQuality.MEDIUM
  • flash.filters.BitmapFilterQuality.HIGH

La qualité supérieure se rapproche d’un flou gaussien. Dans la plupart des cas, ces trois valeurs sont suffisantes. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour obtenir différents effets, mais le rendu des valeurs les plus élevées est moins rapide.

Initialise le filtre.
Initialise le filtre avec les paramètres spécifiés. Les valeurs par défaut créent une image floue sans contours précis.
clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de BlurFilter dont toutes les propriétés sont identiques à celles de l’occurrence BlurFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. blurX Quantité de flou horizontal.Number Quantité de flou horizontal. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurY Quantité de flou vertical.Number Quantité de flou vertical. Les valeurs valides sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. quality Nombre d’applications du flou.int Nombre d’applications du flou. La valeur par défaut est BitmapFilterQuality.LOW, ce qui revient à appliquer le filtre une seule fois. La valeur BitmapFilterQuality.MEDIUM applique le filtre deux fois. La valeur BitmapFilterQuality.HIGH l’applique trois fois et se rapproche d’un flou gaussien. Les rendus des filtres de valeurs faibles sont obtenus plus rapidement.

Pour la plupart des applications, une valeur de quality faible, moyenne ou élevée est suffisante. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour augmenter le nombre d’applications du flou, mais le rendu des valeurs les plus élevées est moins rapide. Sans augmenter la valeur de quality, vous pouvez généralement obtenir un effet similaire, avec un rendu plus rapide, en augmentant simplement les valeurs des propriétés blurX et blurY.

Vous pouvez utiliser les constantes BitmapFilterQuality suivantes pour spécifier les valeurs de la propriété quality :

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH
GradientBevelFilter La classe GradientBevelFilter permet d’appliquer un effet de biseau en dégradé à des objets d’affichage.Permet d’appliquer un effet de biseau en dégradé. flash.filters:BitmapFilter La classe GradientBevelFilter permet d’appliquer un effet de biseau en dégradé à des objets d’affichage. Un biseau en dégradé est une bordure biseautée, enrichie par des couleurs dégradées à l’extérieur, à l’intérieur ou au-dessus d’un objet. Les bordures biseautées donnent un aspect tridimensionnel aux objets. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux objets d’affichage, utilisez la propriété filters. Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la propriété cacheAsBitmap de cet objet est réglée sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge le redimensionnement de la scène. Toutefois, le redimensionnement général, la rotation et l’inclinaison ne sont pas pris en charge. Si l’objet est lui-même redimensionné (si les propriétés scaleX et scaleY ne sont pas réglées sur 1,0), l’effet de filtre n’est pas redimensionné. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, lorsque vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant dessine un carré auquel un filtre de biseau dégradé est appliqué. La séquence des tâches principales de cet exemple s’organise comme suit :
  1. Importation des classes requises.
  2. Déclaration des variables globales pour définir le carré et le filtre.
  3. Création des fonctions constructeur qui effectuent les actions suivantes :
    • Appel de la méthode draw() qui utilise des méthodes de la classe Graphics, accessibles par le biais de la propriété graphics de Sprite, pour dessiner un carré gris.
    • Création d’un objet BitmapFilter nommé filter auquel est attribuée la valeur renvoyée d’un appel à getBitmapFilter() qui crée le filtre.
    • Création d’un nouveau tableau nommé myFilters auquel est ajouté filter.
    • Attribution de myFilters à la propriété filters de l’objet GradientBevelFilterExample. Ceci a pour effet d’appliquer tous les filtres trouvés dans myFilters, en l’occurrence filter uniquement.
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientBevelFilter; public class GradientBevelFilterExample extends Sprite { private var bgColor:uint = 0xCCCCCC; private var size:uint = 80; private var offset:uint = 50; private var distance:Number = 5; private var angleInDegrees:Number = 225; // opposite 45 degrees private var colors:Array = [0xFFFFFF, 0xCCCCCC, 0x000000]; private var alphas:Array = [1, 0, 1]; private var ratios:Array = [0, 128, 255]; private var blurX:Number = 8; private var blurY:Number = 8; private var strength:Number = 2; private var quality:Number = BitmapFilterQuality.HIGH private var type:String = BitmapFilterType.INNER; private var knockout:Boolean = true; public function GradientBevelFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { return new GradientBevelFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
GradientBevelFilter.ratiosflash.display.BitmapData.applyFilter()BevelFilterflash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapGradientBevelFilter Initialise le filtre avec les paramètres spécifiés.distanceNumber4.0La distance de décalage. Les valeurs valides sont comprises entre 0 et 8. angleNumber45Angle, exprimé en degrés. Les valeurs valides sont comprises entre 0 et 360. colorsArraynullTableau de valeurs hexadécimales de couleur RVB à utiliser pour le dégradé. Par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc. alphasArraynullTableau de valeurs de transparence alpha pour les couleurs correspondantes du tableau colors. Les valeurs valides pour chaque élément du tableau sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. ratiosArraynullTableau de taux de distribution des couleurs ; les valeurs possibles sont comprises entre 0 et 255. blurXNumber4.0Quantité de flou horizontal. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurYNumber4.0Quantité de flou vertical. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. strengthNumber1Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste est important entre le biseau et l’arrière-plan. Les valeurs valides sont comprises entre 0 et 255. La valeur 0 signifie que le filtre n’est pas appliqué. qualityint1La qualité du filtre. Utilisez les constantes BitmapFilterQuality :
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Pour plus d’informations, voir la description de la propriété quality.

typeStringinnerPositionnement de l’effet biseau. Les valeurs possibles sont les constantes BitmapFilterType :
  • BitmapFilterType.OUTER, biseau sur le bord extérieur de l’objet.
  • BitmapFilterType.INNER, biseau sur le bord intérieur de l’objet.
  • BitmapFilterType.FULL, biseau sur le dessus de l’objet.
knockoutBooleanfalseSpécifie si un effet de masquage est appliqué. La valeur true applique un effet de masquage qui rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document.
Initialise le filtre avec les paramètres spécifiés.
GradientBevelFilter.qualityGradientBevelFilter.ratios
clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de GradientBevelFilter dont toutes les propriétés sont identiques à celles de l’occurrence de GradientBevelFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. alphas Tableau de valeurs de transparence alpha pour les couleurs correspondantes du tableau colors.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeErrorTableau de valeurs alpha. Tableau de valeurs de transparence alpha pour les couleurs correspondantes du tableau colors. Les valeurs valides pour chaque élément du tableau sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %.

La propriété alphas ne peut pas être modifiée en manipulant directement ses valeurs. Vous devez obtenir une référence à alphas, effectuer les modifications sur la référence, puis définir la propriété alphas sur la référence.

Les propriétés colors, alphas et ratios sont liées. Le premier élément du tableau colors correspond au premier élément du tableau alphas, du tableau ratios, etc.

GradientBevelFilter.colorsGradientBevelFilter.ratios
angle Angle, exprimé en degrés.Number Angle, exprimé en degrés. Les valeurs possibles sont comprises entre 0 et 360. La valeur par défaut est 45.

La valeur d’angle représente l’angle de la source lumineuse théorique éclairant l’objet. La valeur détermine l’angle selon lequel les couleurs de dégradé sont appliquées à l’objet : soit où la surbrillance et l’ombre apparaissent, soit où la première couleur du tableau apparaît. Les couleurs sont ensuite appliquées selon leur ordre d’apparition dans le tableau.

GradientBevelFilter.ratios
blurX Quantité de flou horizontal.Number Quantité de flou horizontal. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurY Quantité de flou vertical.Number Quantité de flou vertical. Les valeurs valides sont comprises entre 0 et 255. Un flou d’une valeur inférieure ou égale à 1 signifie que l’image d’origine n’est pas modifiée avant d’être copiée. La valeur par défaut est 4. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. colors Tableau de valeurs hexadécimales de couleur RVB à utiliser pour le dégradé.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeErrorUn tableau de valeurs de couleur RVB hexadécimales. Tableau de valeurs hexadécimales de couleur RVB à utiliser pour le dégradé. Par exemple, rouge correspond à 0xFF0000, bleu à 0x0000FF, etc.

La propriété colors ne peut pas être modifiée en manipulant directement ses valeurs. Vous devez obtenir une référence à colors, effectuer les modifications sur la référence, puis définir la propriété colors sur la référence.

Les propriétés colors, alphas et ratios sont liées. Le premier élément du tableau colors correspond au premier élément du tableau alphas, du tableau ratios, etc.

GradientBevelFilter.alphasGradientBevelFilter.ratios
distance La distance de décalage.Number La distance de décalage. Les valeurs valides sont comprises entre 0 et 8. La valeur par défaut est 4.0. knockout Spécifie si l’objet a un effet de masquage.Boolean Spécifie si l’objet a un effet de masquage. Un effet de masquage rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. La valeur true spécifie un effet de masquage ; la valeur par défaut est false (pas d’effet de masquage). quality Nombre d’applications du filtre.int Nombre d’applications du filtre. La valeur par défaut est BitmapFilterQuality.LOW, ce qui revient à appliquer le filtre une seule fois. La valeur BitmapFilterQuality.MEDIUM applique le filtre deux fois. La valeur BitmapFilterQuality.HIGH l’applique trois fois. Les rendus des filtres de valeurs faibles sont obtenus plus rapidement.

Pour la plupart des applications, une valeur de quality faible, moyenne ou élevée est suffisante. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour obtenir différents effets, mais le rendu des valeurs les plus élevées est moins rapide. Sans augmenter la valeur de quality, vous pouvez généralement obtenir un effet similaire, avec un rendu plus rapide, en augmentant simplement les valeurs des propriétés blurX et blurY.

BitmapFilterQualityGradientBevelFilter.ratios
ratios Tableau de taux de répartition des couleurs, pour les couleurs correspondantes du tableau colors.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeError Tableau de taux de répartition des couleurs, pour les couleurs correspondantes du tableau colors. Les valeurs valides pour chaque élément du tableau sont comprises entre 0 et 255.

La propriété ratios ne peut pas être modifiée en manipulant directement ses valeurs. Vous devez obtenir une référence à ratios, effectuer les modifications sur la référence, puis définir la propriété ratios sur la référence.

Les propriétés colors, alphas et ratios sont liées. Le premier élément du tableau colors correspond au premier élément du tableau alphas, du tableau ratios, etc.

Pour comprendre comment les couleurs du biseau dégradé sont appliquées, considérez les couleurs que vous souhaitez intégrer à votre biseau dégradé. Un biseau simple possède une couleur d’éclairage et une couleur d’ombre. Un biseau dégradé possède un dégradé éclairé et un dégradé ombré. Supposons que l’éclairage apparaît dans l’angle supérieur gauche et l’ombre, dans l’angle inférieur droit. Et imaginons que l’une des utilisations possibles du filtre comporte quatre couleurs dans la zone éclairée et quatre dans l’ombre. En plus de l’éclairage et de l’ombre, le filtre utilise une couleur de remplissage de base qui apparaît à la jonction des zones éclairées et ombrées. Le nombre total de couleurs est donc neuf, et le nombre d’éléments correspondants dans le tableau des rapports, également neuf.

Si vous souhaitez obtenir un dégradé composé de bandes de différentes couleurs qui se mêlent les unes aux autres, chaque valeur de ratio définit l’emplacement de la couleur sur le rayon du dégradé, 0 représentant le point le plus éloigné et 255, le point le plus proche du centre du dégradé. En général, la valeur moyenne, 128, constitue la valeur de remplissage de base. Pour obtenir l’effet de biseau illustré ci-dessous, affectez les valeurs de ratio comme suit, en vous aidant des neuf couleurs d’exemple :

  • Les quatre premières couleurs se situent dans la plage 0 à 127, chaque valeur étant supérieure ou égale à la précédente. Elles définissent le bord du biseau éclairé.
  • La cinquième couleur (la couleur du milieu) correspond au remplissage de base et est définie sur 128. La valeur de pixel 128 définit le remplissage de base qui apparaît soit à l’extérieur de la forme (et au niveau des bords du biseau) si le type externe est spécifié, soit à l’intérieur de la forme en couvrant efficacement le remplissage même de l’objet, si le type spécifié est interne.
  • Les quatre dernières couleurs se situent dans la plage 129 à 255, chaque valeur étant supérieure ou égale à la précédente. Elles définissent le bord du biseau ombré.

Pour obtenir une répartition équivalente des couleurs sur chaque bord, utilisez un nombre de couleurs impair, la couleur centrale constituant le remplissage de base. Distribuez les valeurs de manière homogène entre 0-127 et 129-255 pour vos couleurs, puis ajustez la valeur pour modifier la largeur de chaque bande de couleur du dégradé. Pour un biseau dégradé possédant neuf couleurs, le tableau [16, 32, 64, 96, 128, 160, 192, 224, 235] est possible. L’image suivante illustre le biseau dégradé décrit :

N’oubliez pas que la répartition des couleurs dans le dégradé varie en fonction des valeurs des propriétés blurX, blurY, strength et quality, ainsi que des valeurs de ratios.

GradientBevelFilter.alphasGradientBevelFilter.colorsflash.display.Graphics.beginGradientFill()
strength Intensité de l’empreinte ou recouvrement.Number Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste est important entre le biseau et l’arrière-plan. Les valeurs valides sont comprises entre 0 et 255. La valeur 0 signifie que le filtre n’est pas appliqué. La valeur par défaut est 1. GradientBevelFilter.ratiostype Positionnement de l’effet biseau.String Positionnement de l’effet biseau. Les valeurs possibles sont les constantes BitmapFilterType :
  • BitmapFilterType.OUTER, biseau sur le bord extérieur de l’objet.
  • BitmapFilterType.INNER, biseau sur le bord intérieur de l’objet.
  • BitmapFilterType.FULL, biseau sur le dessus de l’objet.
ConvolutionFilter La classe ConvolutionFilter applique un effet de filtre de convolution de matrice.Applique un filtre de convolution de matrice. flash.filters:BitmapFilter La classe ConvolutionFilter applique un effet de filtre de convolution de matrice. Une convolution associe les pixels de l’image d’entrée aux pixels environnants pour produire une image. Les convolutions permettent de produire de nombreux effets d’image, notamment le flou, la détection de contour, l’accentuation, l’estampage et le biseautage. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

Pour créer un filtre de convolution, utilisez la syntaxe new ConvolutionFilter(). L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux clips, champs de texte, boutons et vidéo, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la valeur de la propriété cacheAsBitmap de cet objet est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, lorsque vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant applique différents filtres de convolution à un fichier image. Le constructeur de filtres appelle quatre fois buildChild() pour charger et afficher quatre occurrences de l’image. Chaque appel à buildChild() prend comme argument une fonction qui n’applique aucun filtre à la première occurrence, mais un filtre de convolution différent à chaque occurrence ultérieure.

La fonction buildChild() crée un nouvel objet Loader appelé loader. Pour chaque appel à buildChild(), joignez un écouteur d’événements à l’objet Loader pour écouter les événements complete qui sont gérés par la fonction transmise à buildChild().

Les fonctions applyBrightness(), applySharpness() et applyOutline() utilisent différentes valeurs pour le tableau matrix afin d’obtenir différents effets ConvolutionFilter.

Remarque : pour de meilleurs résultats, utilisez une image d’une largeur de 80 pixels environ. Le nom et l’emplacement du fichier image doivent correspondre à la valeur que vous transmettez à la propriété url. En l’occurrence, dans l’exemple, la valeur transmise à url pointe vers un fichier image nommé « Image.jpg » qui est situé dans le même répertoire que votre fichier SWF.

package { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.filters.BitmapFilter; import flash.filters.ConvolutionFilter; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class ConvolutionFilterExample extends Sprite { private var size:uint = 140; private var url:String = "Image.jpg"; public function ConvolutionFilterExample() { buildChild(applyNothing); buildChild(applyBrightness); buildChild(applySharpness); buildChild(applyOutline); } private function buildChild(loadHandler:Function):void { var loader:Loader = new Loader(); loader.x = numChildren * size; loader.y = size; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); if(loadHandler != null) { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); } var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function applyNothing(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); applyLabel(child, "no filter"); } private function applyBrightness(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = [5, 5, 5, 5, 0, 5, 5, 5, 5]; applyFilter(child, matrix); applyLabel(child, "brightness"); } private function applySharpness(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = [0, -1, 0, -1, 20, -1, 0, -1, 0]; applyFilter(child, matrix); applyLabel(child, "sharpness"); } private function applyOutline(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = [-30, 30, 0, -30, 30, 0, -30, 30, 0]; applyFilter(child, matrix); applyLabel(child, "outline"); } private function applyFilter(child:DisplayObject, matrix:Array):void { var matrixX:Number = 3; var matrixY:Number = 3; var divisor:Number = 9; var filter:BitmapFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor); var filters:Array = new Array(); filters.push(filter); child.filters = filters; } private function applyLabel(child:DisplayObject, label:String):void { var tf:TextField = new TextField(); tf.x = child.x; tf.y = child.height; tf.autoSize = TextFieldAutoSize.LEFT; tf.text = label; addChild(tf); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapmatrixConvolutionFilter Initialise une occurrence de ConvolutionFilter avec les paramètres spécifiés.matrixXNumber0Dimension x de la matrice (nombre de colonnes de la matrice). La valeur par défaut est 0. matrixYNumber0Dimension y de la matrice (nombre de lignes de la matrice). La valeur par défaut est 0. matrixArraynullTableau des valeurs utilisées pour la transformation de matrice. Le nombre d’éléments dans le tableau doit être égal à matrixX ~~ matrixY. divisorNumber1.0Diviseur utilisé pendant la transformation de matrice. La valeur par défaut est 1. Un diviseur correspondant à la somme de toutes les valeurs de matrice atténue l’intensité de couleurs globale du résultat. La valeur 0 est ignorée ; elle est remplacée par la valeur par défaut. biasNumber0.0Ecart à ajouter au résultat de la transformation de matrice. La valeur par défaut est 0. preserveAlphaBooleantrueLa valeur false indique que la valeur alpha n’est pas conservée et que la convolution s’applique à tous les canaux, y compris le canal alpha. La valeur true indique que la convolution s’applique uniquement aux canaux de couleur. La valeur par défaut est true. clampBooleantruePour les pixels provenant de l’image source, la valeur true indique que l’image d’entrée est agrandie autant que nécessaire au niveau de ses bordures en dupliquant les valeurs de couleur sur le bord donné. La valeur false indique qu’il faut utiliser une autre couleur, comme spécifié dans les propriétés color et alpha. La valeur par défaut est true. coloruint0Couleur hexadécimale à substituer aux pixels provenant de l’image source. alphaNumber0.0Alpha de la couleur de substitution. Initialise une occurrence de ConvolutionFilter avec les paramètres spécifiés. clone Renvoie une copie de cet objet filtre.BitmapFilter Nouvelle occurrence de ConvolutionFilter dont les propriétés sont toutes identiques à celles de l’occurrence de ConvolutionMatrixFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. alpha Valeur de transparence alpha de la couleur de substitution.Number Valeur de transparence alpha de la couleur de substitution. Les valeurs valides sont comprises entre 0 et 1.0. La valeur par défaut est de 0. Par exemple, 0,25 définit une valeur de transparence de 25 %. bias Ecart à ajouter au résultat de la transformation de matrice.Number Ecart à ajouter au résultat de la transformation de matrice. L’écart augmente la valeur de couleur de chaque canal de telle sorte que les couleurs sombres paraissent plus vives. La valeur par défaut est 0. clamp Indique si l’image doit être corrigée.Boolean Indique si l’image doit être corrigée. Pour les pixels provenant de l’image source, la valeur true indique que l’image d’entrée est agrandie autant que nécessaire au niveau de ses bordures en dupliquant les valeurs de couleur de chacun de ses bords respectifs. La valeur false indique qu’il faut utiliser une autre couleur, comme spécifié dans les propriétés color et alpha. La valeur par défaut est true. L’exemple suivant crée deux zones à l’aide de la classe BitmapData, l’une de ces zones est moitié plus petite que l’autre. Lorsque l’exemple est chargé pour la première fois, la zone la plus grande est dessinée à l’intérieur de mc à l’aide de attachBitmap(). Lorsque l’utilisateur clique sur mc et que la méthode applyFilter() est appelée, l’occurrence largeBox de BitmapData est redessinée avec smallBox comme image bitmap source. Etant donné que applyFilter() dessine la zone smallBox selon un Rectangle dont la largeur et la hauteur sont spécifiées comme étant celles de la zone largeBox, l’image bitmap source est plus petite que l’espace de dessin. Dans ce cas, la propriété clamp de ConvolutionFilter est définie sur false et la zone qui n’est pas couverte par l’image bitmap source, en l’occurrence smallBox, est de couleur rouge uni tel que déterminé par les variables clampColor et clampAlpha. package { import flash.display.Sprite; import flash.display.BitmapData; import flash.filters.ConvolutionFilter; import flash.text.TextField; import flash.geom.Rectangle; import flash.geom.Point; public class ConvolutionClampExample extends Sprite { // Variables that affect clamping: var clamp:Boolean = false; var clampColor:Number = 0xFF0000; var clampAlpha:Number = 1; // For illustration, keep other ConvolutionFilter variables neutral: var bias:Number = 0; var preserveAlpha:Boolean = false; // Also, construct a neutral matrix var matrixCols:Number = 3; var matrixRows:Number = 3; var matrix:Array = [ 1,1,1, 1,1,1, 1,1,1 ]; var filter:ConvolutionFilter = new ConvolutionFilter(matrixCols, matrixRows, matrix, matrix.length, bias, preserveAlpha, clamp, clampColor, clampAlpha); var largeBoxWidth:Number = 100; var largeBoxHeight:Number = 100; var largeBox:BitmapData = new BitmapData(largeBoxWidth, largeBoxWidth, true, 0xCC00FF00); var smallBoxWidth:Number = largeBoxWidth / 2; var smallBoxHeight:Number = largeBoxHeight / 2; var smallBox:BitmapData = new BitmapData(smallBoxWidth, smallBoxWidth, true, 0xCC0000FF); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(largeBox, this.getNextHighestDepth()); mc.onPress = function() { largeBox.applyFilter(smallBox, new Rectangle(0,0, largeBoxWidth, largeBoxHeight), new Point(0,0), filter); } } } color Couleur hexadécimale à substituer aux pixels provenant de l’image source.uint Couleur hexadécimale à substituer aux pixels provenant de l’image source. C’est une valeur RVB sans composant alpha. La valeur par défaut est 0. divisor Diviseur utilisé pendant la transformation de matrice.Number Diviseur utilisé pendant la transformation de matrice. La valeur par défaut est 1. Un diviseur correspondant à la somme de toutes les valeurs de matrice atténue l’intensité globale des couleurs du résultat. La valeur 0 est ignorée ; elle est remplacée par la valeur par défaut. matrixX Dimension x de la matrice (le nombre de colonnes de la matrice).Number Dimension x de la matrice (nombre de colonnes de la matrice). La valeur par défaut est 0. matrixY Dimension y de la matrice (le nombre de lignes de la matrice).Number Dimension y de la matrice (nombre de lignes de la matrice). La valeur par défaut est 0. matrix Tableau des valeurs utilisées pour la transformation de matrice.ArrayLa valeur du tableau est null au moment de sa définition. TypeErrorTypeError Tableau des valeurs utilisées pour la transformation de matrice. Le nombre d’éléments dans le tableau doit être égal à matrixX ~~ matrixY.

Une convolution de matrice s’articule autour d’une matrice n par m qui décrit la façon dont une valeur de pixels donnée dans l’image d’entrée est associée aux valeurs des pixels environnants pour obtenir une nouvelle valeur de pixels. Chaque pixel obtenu est déterminé par l’application de la matrice au pixel source correspondant et à ses pixels environnants.

Pour une convolution de matrice 3 par 3, la formule suivante est utilisée pour chaque canal de couleur indépendant :


	dst (x, y) = ((src (x-1, y-1) ~~ a0 + src(x, y-1) ~~ a1....
	                  src(x, y+1) ~~ a7 + src (x+1,y+1) ~~ a8) / divisor) + bias
	

Certaines spécifications de filtre s’exécutent plus rapidement lorsque le processeur utilisé pour leur exécution est doté d’extensions Streaming SIMD (SSE). Les critères suivants favorisent des convolutions plus rapides :

  • Le filtre doit être un filtre 3 par 3.
  • Tous les termes du filtre doivent être des entiers compris entre -127 et +127.
  • La valeur absolue correspondant à la somme de tous les termes du filtre ne doit pas être supérieure à 127.
  • Si un terme de filtre est négatif, le diviseur doit être compris entre 2,00001 et 256.
  • Si tous les termes de filtre sont positifs, le diviseur doit être compris entre 1,1 et 256.
  • L’écart doit être un entier.

Remarque : si vous créez une occurrence de ConvolutionFilter à l’aide du constructeur sans paramètres, l’ordre dans lequel vous affectez des valeurs aux propriétés de la matrice modifie le comportement du filtre. Dans le cas suivant, le tableau de la matrice est affecté alors que les propriétés matrixX et matrixY sont toujours définies sur 0 (valeur par défaut) :

public var myfilter:ConvolutionFilter = new ConvolutionFilter(); myfilter.matrix = [0, 0, 0, 0, 1, 0, 0, 0, 0]; myfilter.matrixX = 3; myfilter.matrixY = 3;

Dans le cas suivant, le tableau de la matrice est affecté alors que les propriétés matrixX et matrixY sont définies sur 3 :

public var myfilter:ConvolutionFilter = new ConvolutionFilter(); myfilter.matrixX = 3; myfilter.matrixY = 3; myfilter.matrix = [0, 0, 0, 0, 1, 0, 0, 0, 0];
preserveAlpha Indique si le canal alpha est conservé ou si le filtre de convolution s’applique aussi bien à lui qu’aux canaux de couleur.Boolean Indique si le canal alpha est conservé ou si le filtre de convolution s’applique aussi bien à lui qu’aux canaux de couleur. La valeur false indique que la convolution s’applique à tous les canaux, y compris le canal alpha. La valeur true indique que la convolution s’applique uniquement aux canaux de couleur. La valeur par défaut est true.
GlowFilter La classe GlowFilter permet d’appliquer un effet de rayonnement aux objets d’affichage.Permet d’ajouter un effet néon. flash.filters:BitmapFilter La classe GlowFilter permet d’appliquer un effet de rayonnement aux objets d’affichage. Vous disposez de plusieurs options pour définir le style de rayonnement, notamment le rayonnement interne ou externe et le mode de masquage. Le filtre de rayonnement est similaire au filtre d’ombre portée dont les propriétés distance et angle sont définies sur zéro. Vous pouvez appliquer le filtre à tout objet d’affichage (autrement dit, aux objets héritant des propriétés de la classe DisplayObject), tels que MovieClip, SimpleButton, TextField et Video, ainsi qu’aux objets BitmapData.

L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux objets d’affichage, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la propriété cacheAsBitmap de cet objet est réglée sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge le redimensionnement de la scène. Cependant, il ne prend pas en charge le redimensionnement général, la rotation ni l’inclinaison. Si l’objet est redimensionné (si les propriétés scaleX et scaleY ne sont pas réglées sur 1,0), le filtre ne l’est pas. Le redimensionnement est effectué uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, lorsque vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

L’exemple suivant dessine un carré auquel un filtre de flou est appliqué. La séquence des principales tâches de l’exemple s’organise comme suit :
  1. Importation des classes requises.
  2. Déclaration des trois propriétés utilisées dans la méthode draw qui utilise des méthodes de la classe Graphics, accessibles par le biais de la propriété graphics de Sprite, pour dessiner un carré orange.
  3. Création de la fonction constructeur qui effectue les actions suivantes :
    • Appelle la fonction draw pour créer un rectangle.
    • Crée un objet BitmapFilter glowFilter lui affecte les valeurs renvoyées de la fonction getBitmapFilter().
    • Attribue le tableau de valeurs provenant de l’objet glowFilter à la propriété filters de l’objet d’affichage racine. Dans ce cas, tous les enfants de l’objet d’affichage de l’objet d’affichage racine héritent des propriétés du filtre de rayonnement. Ainsi, le rectangle créé dans la fonction draw() affiche les propriétés du filtre de rayonnement.
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.GlowFilter; public class GlowFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function GlowFilterExample() { //draw the rectangle using the draw() function below draw(); //assign the values from getBitmapFilter function below //to a BitmapFilter object "glowFilter" var glowFilter:BitmapFilter = getBitmapFilter(); //populate the filters property of the root display object with the array of values //from the glowFilter object. filters = [ glowFilter ]; } private function getBitmapFilter():BitmapFilter { var color:Number = 0x33CCFF; var alpha:Number = 0.8; var blurX:Number = 35; var blurY:Number = 35; var strength:Number = 2; var inner:Boolean = false; var knockout:Boolean = false; var quality:Number = BitmapFilterQuality.HIGH; return new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.DisplayObject.scaleXflash.display.DisplayObject.scaleYflash.filters.DropShadowFilter.distanceflash.filters.DropShadowFilter.angleGlowFilter Initialise une nouvelle occurrence de GlowFilter avec les paramètres spécifiés.coloruint0xFF0000Couleur du rayonnement, au format hexadécimal 0xRRGGBB. La valeur par défaut est 0xFF0000. alphaNumber1.0Valeur de transparence alpha de la couleur. Les valeurs possibles sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. blurXNumber6.0Quantité de flou horizontal. Les valeurs possibles sont comprises entre 0 et 255 (virgule flottante). Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurYNumber6.0Quantité de flou vertical. Les valeurs possibles sont comprises entre 0 et 255 (virgule flottante). Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. strengthNumber2Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste entre le rayonnement et l’arrière-plan est important. Les valeurs possibles sont comprises entre 0 et 255. qualityint1Nombre d’applications du filtre. Utilisez les constantes BitmapFilterQuality :
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Pour plus d’informations, voir la description de la propriété quality.

innerBooleanfalseSpécifie si le rayonnement est interne. La valeur true indique un rayonnement interne. La valeur false renvoie un rayonnement externe (au niveau des bords extérieurs de l’objet). knockoutBooleanfalseSpécifie si l’objet a un effet de masquage. La valeur true applique un effet de masquage qui rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document.
Initialise une nouvelle occurrence de GlowFilter avec les paramètres spécifiés.
BitmapFilterQualityGlowFilter.quality
clone Renvoie une copie de cet objet filtre.Nouvelle occurrence de GlowFilter dont toutes les propriétés sont identiques à celles de l’occurrence de GlowFilter d’origine. flash.filters:BitmapFilter Renvoie une copie de cet objet filtre. alpha Valeur de transparence alpha de la couleur.Number Valeur de transparence alpha de la couleur. Les valeurs possibles sont comprises entre 0 et 1. Par exemple, 0,25 définit une valeur de transparence de 25 %. La valeur par défaut est 1. blurX Quantité de flou horizontal.Number Quantité de flou horizontal. Les valeurs possibles sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 6. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. blurY Quantité de flou vertical.Number Quantité de flou vertical. Les valeurs possibles sont comprises entre 0 et 255 (virgule flottante). La valeur par défaut est 6. Les valeurs correspondant à une puissance de 2 (telles que 2, 4, 8, 16 et 32) sont optimisées pour obtenir un rendu plus rapide qu’avec les autres valeurs. color Couleur du rayonnement.uint Couleur du rayonnement. Les valeurs valides sont au format hexadécimal 0xRRGGBB. La valeur par défaut est 0xFF0000. inner Spécifie si le rayonnement est interne.Boolean Spécifie si le rayonnement est interne. La valeur true indique un rayonnement interne. La valeur par défaut est false, renvoyant un rayonnement externe (au niveau des bords extérieurs de l’objet). knockout Spécifie si l’objet a un effet de masquage.Boolean Spécifie si l’objet a un effet de masquage. La valeur true applique un effet de masquage qui rend le remplissage de l’objet transparent et révèle la couleur d’arrière-plan du document. La valeur par défaut est false (pas de masquage). quality Nombre d’applications du filtre.int Nombre d’applications du filtre. La valeur par défaut est BitmapFilterQuality.LOW, ce qui revient à appliquer le filtre une seule fois. La valeur BitmapFilterQuality.MEDIUM applique le filtre deux fois. La valeur BitmapFilterQuality.HIGH l’applique trois fois. Les rendus des filtres de valeurs faibles sont obtenus plus rapidement.

Pour la plupart des applications, une valeur de quality faible, moyenne ou élevée est suffisante. Il est possible d’utiliser des valeurs numériques allant jusqu’à 15 pour obtenir différents effets, mais le rendu des valeurs les plus élevées est moins rapide. Sans augmenter la valeur de quality, vous pouvez généralement obtenir un effet similaire, avec un rendu plus rapide, en augmentant simplement les valeurs des propriétés blurX et blurY.

flash.filters.BitmapFilterQuality
strength Intensité de l’empreinte ou recouvrement.Number Intensité de l’empreinte ou recouvrement. Plus la valeur est élevée, plus le recouvrement est intense et plus le contraste entre le rayonnement et l’arrière-plan est important. Les valeurs valides sont comprises entre 0 et 255. La valeur par défaut est 2.
ShaderFilter La classe ShaderFilter applique un filtre en exécutant un shader sur l’objet filtré.flash.filters:BitmapFilter La classe ShaderFilter applique un filtre en exécutant un shader sur l’objet filtré. L’objet filtré est utilisé comme entrée du shader et la sortie du shader devient le résultat du filtre.

Pour créer un filtre, utilisez le constructeur new ShaderFilter(). L’utilisation de filtres dépend de l’objet auquel vous appliquez le filtre.

  • Pour appliquer des filtres aux clips, champs de texte, boutons et vidéo, utilisez la propriété filters (héritée de DisplayObject). Lorsque vous définissez la propriété filters d’un objet, celui-ci n’est pas modifié. En outre, vous pouvez supprimer la propriété filters pour enlever le filtre.
  • Pour appliquer des filtres aux objets BitmapData, utilisez la méthode BitmapData.applyFilter(). L’appel de applyFilter() pour un objet BitmapData génère une image filtrée à partir de l’objet BitmapData source et de l’objet filtre.

Si vous appliquez un filtre à un objet d’affichage, la valeur de la propriété cacheAsBitmap de cet objet est définie sur true. Si vous supprimez tous les filtres, la valeur d’origine de cacheAsBitmap est restaurée.

Ce filtre prend en charge la mise à l’échelle de la scène. Cependant, il ne prend pas en charge le redimensionnement général, la rotation ni l’inclinaison. Si l’objet lui-même est redimensionné (si les propriétés scaleX et scaleY ne sont pas définies sur 100 %), l’effet de filtre n’est pas redimensionné. La mise à l’échelle est effectuée uniquement en cas de zoom avant sur la scène.

Aucun filtre n’est appliqué si l’image obtenue dépasse les dimensions maximales. Dans AIR 1.5 et Flash Player 10, la taille maximale est de 8 191 pixels en largeur ou en hauteur, et le nombre total de pixels ne peut pas excéder 16 777 215 pixels (ainsi, si la largeur d’une image est de 8 191 pixels, sa hauteur maximale doit être de 2 048 pixels). Dans Flash Player 9 et les versions antérieures, ainsi que dans AIR 1.1 et les versions antérieures, la limite est de 2 880 pixels de haut sur 2 880 pixels de large. Par exemple, si vous effectuez un zoom avant sur un clip de grande taille auquel un filtre est appliqué, le filtre sera désactivé si l’image obtenue dépasse les dimensions maximales.

Pour spécifier l’occurrence Shader à utiliser avec le filtre, transmettez l’occurrence Shader en tant qu’argument au constructeur ShaderFilter() ou définissez-la en tant que valeur de la propriété shader.

Pour que le résultat du shader puisse s’étendre au-delà des limites de l’objet filtré, utilisez les propriétés leftExtension, rightExtension, topExtension et bottomExtension.

L’exemple suivant charge un shader et l’utilise en tant que propriété shader d’un ShaderFilter. Le code trace un cercle dans une occurrence Sprite et l’ajoute sur la scène. Lorsque le shader est chargé, le filtre du shader est appliqué à cette occurrence Sprite.

Notez que cet exemple part du principe qu’un fichier de pseudo-code binaire du shader nommé « gradient.pbj » existe dans le répertoire de sortie de l’application.

// // Source code for the shader: // <languageVersion : 1.0;> kernel RedGradientFilter < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "Applies a gradient across the red channel of the input image."; > { input image4 src; output pixel4 dst; parameter float width < description: "The width of the image to which the shader is applied."; minValue: 0.0; >; void evaluatePixel() { pixel4 temp = sampleNearest(src, outCoord()); temp.r = 1.0 - (outCoord().x * (1.0 / width)); dst = temp; } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.filters.ShaderFilter; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderFilterExample extends Sprite { private var loader:URLLoader; private var s:Sprite; public function ShaderFilterExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("gradient.pbj")); s = new Sprite(); s.graphics.beginFill(0x009900); s.graphics.drawCircle(100, 100, 100); addChild(s); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(loader.data); shader.data.width.value = [s.width]; var gradientFilter:ShaderFilter = new ShaderFilter(shader); s.filters = [gradientFilter]; } } }
flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.BitmapData.applyFilter()flash.display.ShaderShaderFilter Crée un nouveau filtre shader.shaderflash.display:ShadernullShader à utiliser pour ce filtre. Pour plus d’informations et pour connaître les limites que le shader doit respecter, voir la description de la propriété shader. Crée un nouveau filtre shader. shaderbottomExtension Croissance en pixels sur le bas de l’objet cible.int0 Croissance en pixels sur le bas de l’objet cible.

La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension, rightExtension, topExtension et bottomExtension.

leftExtension Croissance en pixels sur le côté gauche de l’objet cible.int0 Croissance en pixels sur le côté gauche de l’objet cible.

La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension, rightExtension, topExtension et bottomExtension.

rightExtension Croissance en pixels sur le côté droit de l’objet cible.int0 Croissance en pixels sur le côté droit de l’objet cible.

La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension, rightExtension, topExtension et bottomExtension.

shader Shader à utiliser pour ce filtre.flash.display:Shader Shader à utiliser pour ce filtre.

Le Shader affecté à la propriété shader doit spécifier au moins une entrée image4. Il n’est pas nécessaire de spécifier l’entrée dans le code via la propriété input de l’objet ShaderInput. L’objet auquel le filtre est appliqué est en fait automatiquement utilisé comme première entrée (entrée avec index 0). Un shader utilisé comme filtre peut spécifier plusieurs entrées, auquel cas toute entrée supplémentaire doit être spécifiée par la définition de la propriété input de son occurrence ShaderInput.

Lorsque vous affectez une occurrence Shader à cette propriété, le shader est copié en interne et l’opération de filtrage utilise cette copie interne, et non une référence au shader d’origine. Toute modification apportée au shader, par exemple la modification de la valeur d’un paramètre, l’entrée ou le pseudo-code binaire, n’est pas appliquée au shader copié utilisé pour le filtre. Pour que les modifications apportées au shader soient prises en compte dans le résultat du filtre, vous devez réaffecter l’occurrence Shader à la propriété shader. Comme pour tous les filtres, vous devez également réaffecter l’occurrence de ShaderFilter à la propriété filters de l’objet d’affichage afin d’appliquer les modifications du filtre.

topExtension Croissance en pixels sur le haut de l’objet cible.int0 Croissance en pixels sur le haut de l’objet cible.

La croissance correspond à la zone située au-delà des limites de l’objet cible transmise au shader durant l’exécution. Au moment de l’exécution, Flash Player ou AIR calcule les limites normales du clip et les étend sur la base des valeurs leftExtension, rightExtension, topExtension et bottomExtension.