Dựa trên hướng dẫn sử dụng Illustrator JS Tôi đã đưa ra mã dưới đây. Mã này thực hiện chính xác những gì bạn muốn:
- Tạo một gradient với hai điểm dừng màu: đen và trắng
- Lặp lại năm lần
- Áp dụng nó như một nét cho phần tử đang hoạt động (được chọn)
Một phiên bản tổng quát hơn có thể được tìm thấy bên dưới dòng.
(1) Trước tiên, chúng tôi đặt số lượng màu mong muốn và số lần mong muốn mà gradient cần lặp lại:
//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) Sau đó, chúng tôi đặt một số biến sẽ được sử dụng sau. CácGradientInterval
tính toán vị trí tỷ lệ phần trăm mỗi điểm cần được đặt tại. totalNumberofStops
là khá tự giải thích. Các colors
mảng sẽ được sử dụng sau.
//Don't change these
var i,j;
var gradientInterval = 100 / numberOfColors / iteration;
var totalNumberOfStops = numberOfColors * iteration;
var colors = [];
(3) Sau đó, chúng ta có thể xác định màu sắc của chúng tôi. Bạn cần chính xác nhiều màu như được thiết lập ở numberOfColors
đầu. Thiếu màu sẽ mặc định thành màu đen.
//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) Thời gian để tạo gradient của chúng tôi và đặt tên cho nó. Bây giờ chúng ta cũng có thể đặt loại.
//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) Bây giờ cho phần tốt. Đầu tiên chúng ta sẽ lặp lạitotalNumberOfStops
để chúng ta có thể tạo từng điểm dừng và thêm nó vào gradient. Chúng tôi tạo một điểm dừng mới và đặt điểm dừng xa hơn điểm dừng cuối cùng. Bây giờ chúng ta cần phải có được màu sắc phù hợp từ mảng màu của chúng tôi. Khi mô-đun của chỉ số vòng lặp chia cho số lượng màu là 0, chúng ta biết rằng chúng ta đã có mọi màu và chúng ta cần bắt đầu lại, vì vậy chúng ta đặt lại chỉ số màu của mình.
Thí dụ Nói rằng tôi có sáu màu mà tôi muốn lặp 5 lần. Chúng tôi đã có ba mươi điểm dừng. Chúng tôi lặp lại tất cả các màu bằng cách sử dụng j
. Khi j
trở thành 6 thì không còn màu nào nữa (sáu là màu thứ bảy trong mảng nhưng chỉ có sáu màu trong mảng). Vì vậy, mỗi bội số của sáu chúng ta bắt đầu lại ở 0. Khác, chúng ta chỉ cần chuyển sang màu tiếp theo.
Bây giờ chúng ta chỉ cần thêm điểm dừng màu cuối cùng ở mức 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) Bước cuối cùng: áp dụng gradient cho đột quỵ. Làm xong. Buổi tiệc!
//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) Bạn có thể phải đặt đột quỵ thành 'Áp dụng độ dốc dọc theo nét vẽ' vì tôi không tìm thấy mã để thực hiện việc này.
Mã này được thực hiện đặc biệt cho trường hợp của bạn. Một phiên bản tổng quát hơn có thể được tìm thấy ở đây: http://pastie.org/10921740
Vài ví dụ:
Một gradient có hai màu, lặp lại hai lần:
Một gradient với năm màu, lặp lại 10 lần:
Một gradient có hai màu, lặp lại 50 lần:
Một gradient khổng lồ với 50 màu lặp lại 50 lần: