Voici une application qui permet de générer le code pour insérer des dégradés dynamiques dans votre flash.

Voir Gradient maker

Accéder au forum

Elle utilise principalement la classe Matrix, et les méthodes MovieClip.beginGradientFill et Matrix.createGradientBox.

Vous pouvez gérer et voir en temps réel tout les paramètres de la méthode beginGradientFill. Seule la forme de la Matrix n’est, pour le moment, pas paramétrable.
Sont donc gérables :

  • le type de dégradé
  • le mode d’interpolation des couleurs
  • le mode de remplissage
  • le point de focus
  • l’angle du dégradé
  • le nombre de couleurs
  • l’alpha de chaque couleur
  • le ratio de chaque couleur
  • la taille de la Matrix de définition du dégradé

Une fois le dégradé que vous souhaitez obtenu, vous n’avez qu’à copier le code dans le calque actions de votre fichier flash, et remplacer le clip nommé hote_mc par le movieClip auquel vous souhaitez appliquer le dégradé.

Le plus simple, c’est d’aller voir

Précision sur les ratios des couleurs

Pour obtenir un dégradé correct, les ratios s’échelonnent de 0 à 255 de manière croissante de la première couleur à la dernière. Si par exemple la 1ere couleur a un ratio de 100, la 2ième couleur ne peut avoir un ratio à 50, car elle ne sera pas visible (dans la zone de la 1ere couleur).

Explications

[actionscript]
//on importe la classe matrix
import flash.geom.Matrix;

function affichage_degrade(){
//j’efface l’image actuellement affichée dans hote_gradient
hote_gradient.clear();
//le type de dégradé que je souhaite (radial ou linear)
var fillType:String = « linear »;
//Les nombres d’éléments dans les paramètres colors, alphas, et ratios doivent être égaux
//couleur initiale et couleur finale.
var colors:Array = [0xFFFFFF, 0x000000];
//transparence des différentes couleurs
var alphas:Array = [0, 35];
//Cette valeur définit le pourcentage de la largeur où la couleur est échantillonnée à 100 %.(de 0 à 255)
var ratios:Array = [127,255];
//Soit « RGB », soit « linearRGB ».
//Avec « linearRGB », les couleurs sont distribuées de façon linéaire dans le dégradé.
//La valeur par défaut est « RGB ».
var interpolationMethod:String = « RGB »;
//Nombre qui contrôle l’emplacement du point focal du dégradé.
var focalPointRatio = 0;
//Soit « pad », « reflect » ou « repeat », ce qui contrôle le mode du remplissage en dégradé. //La valeur par défaut est « pad « .
var spreadMethod:String = « pad »;
//La classe flash.geom.Matrix représente une matrice de transformation qui détermine
// la façon de mapper des points d’un espace de coordonnées à l’autre.
var matrix:Matrix = new Matrix();
//Crée le style de matrice attendu par la méthode MovieClip.beginGradientFill()
matrix.createGradientBox(Stage.width,Stage.height,Math.PI/2,0,0);
//Indique le début d’un nouveau chemin de dessin avec les parametres definis au dessus
hote_gradient.beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
hote_gradient.moveTo(0, 0);
hote_gradient.lineTo(0, Stage.height);
hote_gradient.lineTo(Stage.width, Stage.height);
hote_gradient.lineTo(Stage.width, 0);
//je trace le rectangle qui va contenir le motif à la meme taille que la scène
hote_gradient.lineTo(0, 0);
//j’applique le remplissage aux lignes ajoutées depuis le dernier rappel à beginFill()
hote_gradient.endFill();
}
//je crée le clip qui va recevoir le dégradé, et je lui applique la fonction affichage_degrade
this.createEmptyMovieClip(« hote_mc »,this.getNextHighestDepth());
affichage_degrade(hote_mc);

[/actionscript]