有没有办法在Basiljs中创建渐变?

时间:2014-03-07 15:46:17

标签: adobe-indesign basil.js

这是一个非常不言自明的问题。

我很好奇为什么没有内置函数来创建渐变。我发现“伪造它”的唯一方法是创建一系列线条或矩形,每个线条或矩形都有一个用b.lerpColor计算的独特颜色。

我看到InDesign对象模型当然有渐变类,但我不知道如何使用basiljs访问它。

也许有人可以给我看?非常感谢。

1 个答案:

答案 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)