Sur la base du manuel Illustrator JS, j'ai trouvé le code ci-dessous. Ce code fait exactement ce que vous voulez:
- Crée un dégradé avec deux arrêts de couleur: noir et blanc
- Le répète cinq fois
- L'applique comme trait à l'élément actif (sélectionné)
Une version plus généraliste se trouve sous la ligne.
(1) Tout d'abord, nous définissons le nombre de couleurs souhaité et les temps souhaités pour que le dégradé soit itéré:
//Change these
var numberOfColors = 2; //Change this to the desired number of colors in the gradient
var iteration = 5; //Change this to the desired times you want to repeat the gradient
(2) Ensuite, nous avons défini certaines variables à utiliser plus tard. Le GradientInterval
calcule la position en pourcentage sur laquelle chaque point doit être réglé. totalNumberofStops
est assez explicite. Le colors
tableau sera utilisé ultérieurement.
//Don't change these
var i,j;
var gradientInterval = 100 / numberOfColors / iteration;
var totalNumberOfStops = numberOfColors * iteration;
var colors = [];
(3) Ensuite, nous pouvons définir nos couleurs. Il vous faut exactement autant de couleurs que celles définies numberOfColors
au début. Les couleurs manquantes seront par défaut le noir.
//Don't forget to push the colors to the colors array!
var color1 = new RGBColor();
color1.red = 0;
color1.green = 0;
color1.blue = 0;
colors.push(color1);
var color2 = new RGBColor();
color2.red = 255;
color2.green = 255;
color2.blue = 255;
colors.push(color2);
(4) Il est temps de créer notre dégradé et de lui donner un nom. Nous pouvons également maintenant définir le type.
//Let's initiate the gradient & name it
var newGradient = app.activeDocument.gradients.add();
newGradient.name = "new_gradient";
//Choose the gradient type here
//newGradient.type = GradientType.RADIAL; //Uncomment the one you need
newGradient.type = GradientType.LINEAR; //Uncomment the one you need
(5) Maintenant, pour la bonne partie. Nous allons d'abord parcourir le totalNumberOfStops
afin de pouvoir créer chaque arrêt et l'ajouter au dégradé. Nous créons un nouvel arrêt et le définissons un plus loin que le dernier. Maintenant, nous devons obtenir la bonne couleur de notre gamme de couleurs. Lorsque le module de l'index de boucle divisé par le nombre de couleurs est égal à 0, nous savons que nous avons eu toutes les couleurs et nous devons recommencer, nous réinitialisons donc notre indice de couleur.
Exemple Disons que j'ai six couleurs que je veux boucler 5 fois. Nous avons trente arrêts. Nous parcourons toutes les couleurs en utilisant j
. Quand j
devient 6, il n'y a plus de couleurs (six est la septième couleur du tableau mais il n'y a que six couleurs dans le tableau). Donc, chaque multiple de six, nous recommençons à 0. Sinon, nous passons simplement à la couleur suivante.
Il ne nous reste plus qu'à ajouter la couleur finale à 100%.
//Now here is where the magic starts
for(i=0;i<totalNumberOfStops;i++){
var newStop = newGradient.gradientStops.add();
newStop.rampPoint = i * gradientInterval;
var modulus = i % numberOfColors;
if(modulus === 0){
j = 0;
}else{
j+=1;
}
newStop.color = colors[j];
}
var lastStop = newGradient.gradientStops.add();
lastStop.rampPoint = 100;
lastStop.color = colors[colors.length-1];
(6) Dernière étape: appliquer le dégradé au trait. Terminé. Fête!
//Apply gradient stroke to selected object
var colorOfGradient = new GradientColor();
colorOfGradient.gradient = newGradient;
var topPath = app.activeDocument.pathItems[0];
topPath.stroked = true;
topPath.strokeWidth = 140;
topPath.strokeColor =colorOfGradient;
(7) Vous devrez peut-être définir manuellement le trait sur «Appliquer le dégradé le long du trait», car je n'ai pas trouvé le code pour le faire.
Ce code a été spécialement conçu pour votre cas. Une version plus généraliste peut être trouvée ici: http://pastie.org/10921740
Quelques exemples:
Un dégradé à deux couleurs se répétant deux fois:
Un dégradé de cinq couleurs se répétant 10 fois:
Un dégradé à deux couleurs, répétant 50 fois:
Un dégradé énorme avec 50 couleurs se répétant 50 fois: