Thay đổi dần dần một Swatch Indesign với Extendscript (JavaScript)

Sep 10 2020

Tôi có một doc InDesign với swatch tên "mySwatch" đó là C10 M20 Y30 K40. Tôi đã viết dòng:

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

để thay đổi nó vào một tập hợp cụ thể của các giá trị ( 9,19,30,41), nhưng tôi muốn thay vì thêm hoặc trừ đi từ giá trị hiện có, chúng ta hãy nói [ -1, -1, unchanged, +1].

Điều này có khả thi không?

Trả lời

fabianmoronzirfas Sep 11 2020 at 11:40

Bạn sẽ phải lấy các giá trị ra bằng cách gán chúng cho một biến mới.

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

Thực hiện các thao tác của bạn trên chúng.

myvalues[0] = myvalues[0] - 1

Gán lại chúng cho mẫu của bạn.

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

(Không thử nghiệm)

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];

Thử nghiệm.