这是一个非常不言自明的问题。
我很好奇为什么没有内置函数来创建渐变。我发现“伪造它”的唯一方法是创建一系列线条或矩形,每个线条或矩形都有一个用b.lerpColor计算的独特颜色。
我看到InDesign对象模型当然有渐变类,但我不知道如何使用basiljs访问它。
也许有人可以给我看?非常感谢。
答案 0 :(得分:1)
查看此参考http://jongware.mit.edu/idcs6js/pc_Gradient.html
试试这样:
#includepath "~/Documents/;%USERPROFILE%Documents";
#include "basiljs/bundle/basil.js";
function draw() {
var d = b.doc();
var r = b.rect(0, 0, b.width, b.height);
var myGrad = d.gradients.add({
name: "Col " + (parseInt(Math.random() * 10000)),
type: GradientType.linear
});
myGrad.gradientStops[0].properties = {
stopColor: d.colors.item(2),
location: Math.random() * 50
};
myGrad.gradientStops[1].properties = {
stopColor: d.colors.item(4),
location: 50 + Math.random() * 50
};
r.fillColor = myGrad;
// to set the fill of the gradient use the following line
r.gradientFillAngle = 50;//b.random(-180,180);
}
b.go();
每次运行时,脚本都会创建一个新的渐变色板。
编辑:添加了gradientFillAngle
看看here。
gradientFillAngle number r / w应用于Rectangle填充的线性渐变的角度。 (范围:-180到180)