adobe illustrator 脚本 - 检查样本颜色是否在列表中

adobe illustrator script- check if swatch color is on list

我正在尝试制作一个脚本,它将遍历样本列表并搜索名为“Line”的样本。 如果找不到,我想添加它,但如果已经找到,我希望脚本被忽略。

这是我目前所做的,问题是如果它找到一个名为“Line”的样本,它会出于某种原因创建一个新的粉红色。

var doc = app.activeDocument;

for (i = 0; i < doc.swatches.length; i++)
{
   if (doc.swatches[i].name != "Line")
   {
       var newSpot = doc.spots.add();

        var newColor = new CMYKColor();
        newColor.cyan = 100;
        newColor.magenta = 100;
        newColor.yellow = 100;
        newColor.black = 100;

        newSpot.name = "Line";
        newSpot.colorType = ColorModel.SPOT;
        newSpot.color = newColor;
   }
}

您可以先尝试按名称选择颜色,只有在出现错误时才创建新颜色:

var doc = app.activeDocument;

try { var color = doc.swatches.getByName('Line') }

catch(e) {

    var newColor = new CMYKColor();
        newColor.cyan    = 100;
        newColor.magenta = 100;
        newColor.yellow  = 100;
        newColor.black   = 100;

    var newSpot = doc.spots.add();
        newSpot.name      = 'Line';
        newSpot.colorType = ColorModel.SPOT;
        newSpot.color     = newColor;
}