2011-12-29 99 views
0

我對javascript很陌生,我正在編寫一個腳本來查找指定填充顏色的所有pathItems,並將它們更改爲另一種填充顏色。這必須在不使用色板的情況下以RGB或十六進制完成。到目前爲止,我已經整理了一些我發現的其他腳本,但是我遇到了很多錯誤。這是我到目前爲止:使用Javascript在Illustrator中更改顏色

var myDoc =app.activeDocument 
var fillRGBColor = function (pathItem){ 
    var fillColor = new Array(); 
    fillColor[0] = myDoc.pathItem.fillColor.red; 
    fillColor[1] = myDoc.pathItem.fillColor.green; 
    fillColor[2] = myDoc.pathItem.fillColor.blue; 
    return fillColor; 
} 

fillRGBColor(); 
var pathItems = myDoc.pathItems; 
for (i=0; i<pathItems.length; i++){ 
    fillColor[255,255,255] ==fillColor[50,50,50]; 
} 

謝謝!

回答

0

事實上,你的腳本中有很多錯誤。看看錯誤的類型,我建議你閱讀Adobe Illustrator CS5 Reference: JavaScript或任何JavaScript教程。

無論如何您可以通過我修改過的代碼來減少你的JavaScript錯誤。

var fillRGBColor = function (pathItems, r, g, b){ 
    for (var i=0; i < pathItems.length; i++) { 
     pathItems[i].fillColor.red = r; 
     pathItems[i].fillColor.green = g; 
     pathItems[i].fillColor.blue = b; 
    } 
} 

fillRGBColor(app.activeDocument.pathItems, 50, 50, 50); 
1

我需要回答這個問題,但現有答案不完整。這是一個完整的工作解決方案。您可以指定「from」RGB和「to」RGB顏色,並調用fillRGBColor獲取需要更改的顏色。

下一步是找出如何爲超過1個Illustrator文件:)

var fillRGBColor = function (pathItems, fr,fg,fb,tr,tg,tb){ 
    for (var i=0; i < pathItems.length; i++) { 

     if (pathItems[i].fillColor.red == fr 
      && pathItems[i].fillColor.green == fg 
      && pathItems[i].fillColor.blue == fb) { 
       pathItems[i].fillColor.red = tr; 
       pathItems[i].fillColor.green = tg; 
       pathItems[i].fillColor.blue = tb; 
     } 

    } 
} 

fillRGBColor(app.activeDocument.pathItems, 20, 20, 20, 50, 50, 50); 
自動化此腳本