Berdasarkan manual Illustrator JS, saya menemukan kode di bawah ini. Kode ini melakukan apa yang Anda inginkan:
- Membuat gradien dengan dua pemberhentian warna: hitam dan putih
- Ulangi lima kali
- Terapkan sebagai goresan ke elemen aktif (dipilih)
Versi yang lebih umum dapat ditemukan di bawah baris.
(1) Pertama-tama kita mengatur jumlah warna yang diinginkan dan waktu yang diinginkan gradien perlu diulang:
//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) Kemudian kita atur beberapa variabel untuk digunakan nanti. The GradientInterval
menghitung posisi persentase masing-masing kebutuhan titik yang akan ditetapkan pada. totalNumberofStops
cukup jelas. The colors
array akan digunakan kemudian.
//Don't change these
var i,j;
var gradientInterval = 100 / numberOfColors / iteration;
var totalNumberOfStops = numberOfColors * iteration;
var colors = [];
(3) Lalu kita bisa mendefinisikan warna kita. Anda membutuhkan warna sebanyak yang diatur di numberOfColors
awal. Warna yang hilang akan menjadi hitam.
//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) Saatnya membuat gradien kami dan beri nama. Kita sekarang juga dapat mengatur tipenya.
//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) Sekarang untuk bagian yang baik. Pertama kita akan mengulangi totalNumberOfStops
sehingga kita dapat membuat setiap stop dan menambahkannya ke gradien. Kami membuat pemberhentian baru dan menetapkan yang lebih jauh dari yang terakhir. Sekarang kita perlu mendapatkan warna yang tepat dari susunan warna kita. Ketika modulus dari indeks loop dibagi dengan jumlah warna adalah 0, kita tahu bahwa kita sudah memiliki setiap warna dan kita perlu memulai lagi, jadi kita mengatur ulang indeks warna kita.
Contoh Katakanlah saya punya enam warna yang ingin saya putar 5 kali. Kami punya tiga puluh perhentian. Kami mengulangi semua warna menggunakan j
. Ketika j
menjadi 6 tidak ada lagi warna (enam adalah warna ketujuh dalam array tetapi hanya ada enam warna dalam array). Jadi setiap kelipatan dari enam kita mulai lagi dari 0. Lain kita hanya beralih ke warna berikutnya.
Sekarang kita hanya perlu menambahkan penghenti warna akhir pada 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) Langkah terakhir: menerapkan gradien ke stroke. Selesai Pesta!
//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) Anda mungkin harus mengatur stroke ke 'Terapkan gradien sepanjang stroke' secara manual, karena saya belum menemukan kode untuk melakukan ini.
Kode ini khusus dibuat untuk kasus Anda. Versi yang lebih umum dapat ditemukan di sini: http://pastie.org/10921740
Beberapa contoh:
Gradien dengan dua warna, ulangi dua kali:
Gradien dengan lima warna, berulang 10 kali:
Gradien dengan dua warna, berulang 50 kali:
Gradien kekalahan dengan 50 warna berulang 50 kali: