Basierend auf dem Illustrator JS-Handbuch habe ich den folgenden Code gefunden. Dieser Code macht genau das, was Sie wollen:
- Erstellt einen Farbverlauf mit zwei Farbstopps: Schwarz und Weiß
- Wiederholt es fünfmal
- Wendet es als Strich auf das aktive (ausgewählte) Element an
Eine allgemeinere Version finden Sie unter der Zeile.
(1) Zuerst stellen wir die gewünschte Anzahl von Farben und die gewünschten Zeiten ein, zu denen der Verlauf iterieren muss:
//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) Dann setzen wir einige Variablen, die später verwendet werden sollen. Der GradientInterval
berechnet die prozentuale Position, an der jeder Punkt gesetzt werden muss. totalNumberofStops
ist ziemlich selbsterklärend. Das colors
Array wird später verwendet.
//Don't change these
var i,j;
var gradientInterval = 100 / numberOfColors / iteration;
var totalNumberOfStops = numberOfColors * iteration;
var colors = [];
(3) Dann können wir unsere Farben definieren. Sie benötigen genau so viele Farben, wie Sie numberOfColors
am Anfang eingestellt haben. Fehlende Farben werden standardmäßig schwarz.
//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) Zeit, unseren Farbverlauf zu erstellen und ihm einen Namen zu geben. Wir können jetzt auch den Typ einstellen.
//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) Nun zum guten Teil. Zuerst machen wir eine Schleife über die, totalNumberOfStops
damit wir jeden Stopp erstellen und zum Farbverlauf hinzufügen können. Wir erstellen einen neuen Stopp und setzen ihn weiter als den letzten. Jetzt müssen wir die richtige Farbe aus unserer Farbpalette herausholen. Wenn der Modul des Schleifenindex geteilt durch die Anzahl der Farben 0 ist, wissen wir, dass wir jede Farbe hatten und müssen neu beginnen, also setzen wir unseren Farbindex zurück.
Beispiel Angenommen, ich habe sechs Farben, die ich fünfmal in einer Schleife wiedergeben möchte. Wir haben dreißig Haltestellen. Wir durchlaufen alle Farben mit j
. Wenn j
6 wird, gibt es keine Farben mehr (sechs ist die siebte Farbe im Array, aber es gibt nur sechs Farben im Array). Also fangen wir jedes Vielfache von sechs wieder bei 0 an. Sonst fahren wir einfach mit der nächsten Farbe fort.
Jetzt müssen wir nur noch den endgültigen Farbstopp bei 100% hinzufügen.
//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) Der letzte Schritt: Anwenden des Gradienten auf den Strich. Erledigt. Party!
//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) Möglicherweise müssen Sie den Strich manuell auf "Verlauf entlang des Strichs anwenden" einstellen, da ich den Code dafür nicht gefunden habe.
Dieser Code wurde speziell für Ihren Fall erstellt. Eine allgemeinere Version finden Sie hier: http://pastie.org/10921740
Einige Beispiele:
Ein Verlauf mit zwei Farben, der sich zweimal wiederholt:
Ein Farbverlauf mit fünf Farben, der zehnmal wiederholt wird:
Ein Verlauf mit zwei Farben, der 50 Mal wiederholt wird:
Ein beeindruckender Farbverlauf mit 50 Farben, der sich 50 Mal wiederholt: