Постепенное изменение образца Indesign с помощью Extendscript (JavaScript)

Sep 10 2020

У меня есть документ InDesign с образцом под названием «mySwatch», который есть C10 M20 Y30 K40. Я написал строчку:

app.activeDocument.colors.item("mySwatch").colorValue = [9,19,30,41];

чтобы изменить его к определенному набору значений ( 9,19,30,41), но я хотел бы, чтобы вместо того, чтобы добавить или вычесть из существующих значений, скажем , [ -1, -1, unchanged, +1].

Это возможно?

Ответы

fabianmoronzirfas Sep 11 2020 at 11:40

Вам нужно будет получить значения, присвоив их новой переменной.

var myvalues = app.activeDocument.colors.item("mySwatch").colorValue

Проделайте с ними свои операции.

myvalues[0] = myvalues[0] - 1

Переназначьте их своему образцу.

app.activeDocument.colors.item("mySwatch").colorValue = myvalues 

(Не проверено)

YuriKhristich Sep 29 2020 at 21:06
function change_color(a, b) {
    return [a[0] += b[0], a[1] += b[1], a[2] += b[2], a[3] += b[3]];
}

var color  = app.activeDocument.colors.item("mySwatch").colorValue; // [10,20,30,40]
var change = [-1, -1,  0,  1];
app.activeDocument.colors.item("mySwatch").colorValue = change_color(color, change); // [9,19,30,41];

Проверено.