Affichage des articles dont le libellé est Filtre. Afficher tous les articles
Affichage des articles dont le libellé est Filtre. Afficher tous les articles

04/02/2011

Appliquer un filtre sur plusieurs composants

Quand on veux attribuer un filtre à une liste de composants 'connus', on peut créer une fonction qui va créer le filtre et l'appliquer dès le chargement de l'application.

<mx:Script>
   <![CDATA[
    import flash.filters.*; // importation des filtres
    private var myGlowFilter:GlowFilter;//création de la fonction
    public function creationFiltre():void {
    myGlowFilter = new GlowFilter(0xFF33FF, .8, 6, 6, 2, 1, false, false);
//liste des composants recevant le filtre


monBouton et monCanvas sont les id des composants posés dans l'application.

    monBouton.filters = [myGlowFilter];
    monCanvas.filters = [myGlowFilter];
     }
  ]]></mx:Script>


- On appelle cette fonction, ici au chargement de l'application

<mx:Application... creationComplete="creationFiltre()">

Appliquer le même filtre sur plusieurs composants

Dans le cas d'un projet, je suis parfois amené à appliquer un effet d'ombré (par exemple) sur plusieurs containers. Pour éviter de dupliquer le même code et éviter des erreurs en cas de modifications des paramètres du filtres, il faut créer une fonction qui contiendra les paramètres du filtre que je  veux appliquer, puis appeler cette fonction dans la propriété filters du composant :

<mx:Script>
  <![CDATA[
    private function appliqueUneOmbre():DropShadowFilter {
       var distance:Number = 3;
       var angle:Number = 90;
       var color:Number = 0x000000;
       var alpha:Number = 1;
       var blurX:Number = 8;
       var blurY:Number = 8;
       var strength:Number = 0.65;
       var quality:Number = BitmapFilterQuality.LOW;
       var inner:Boolean = false;
       var knockout:Boolean = false; return new DropShadowFilter(distance, angle, color, alpha,blurX, blurY, strength, quality, inner, knockout);
    }
  ]]>
</mx:Script>

<mx:Canvas filters="{[appliqueUneOmbre()]}"/>

29/09/2010

Ajouter un filtre sur un composant

Il faut dans un 1er temps importer les filtres puis décider comment l'appliquer.
Soit directement sur le composant, si on ne veut s'en servir qu'une fois par exemple, soit à l'extérieur du composant pour pouvoir le réutiliser.

Appliqué directement au composant

<mx:Button  label="Bouton avec un glow">
   <mx:filters>
     <flash.filters:GlowFilter
/* nom du filtre*/
      xmlns:flash.filters='flash.filters.*' /* import des filtres*/
    blurX='10' blurY='0'.../> /* les paramètres du filtres*/
   </mx:filters>
</mx:Button>