2012-03-27 5 views
3

Есть ли способ получить доступ к pathItem's заполнять непрозрачность с помощью javascript? Я могу получить доступ к общей непрозрачности, но я хочу снизить непрозрачность заливки, сохраняя при этом ход полностью непрозрачным.Illustrator ExtendScript set FILL непрозрачность выбора

Я не могу найти что-либо в документации, и я не могу найти кого-либо еще, задающего этот вопрос.

Я могу установить общую непрозрачность примерно так:

var selection = app.activeDocument.selection; 
selection[0].opacity = 50; 

Я пробовал все варианты "fillOpacity", что я могу думать, как это:

var selection = app.activeDocument.selection; 
selection[0].fillOpacity = 50; 
selection[0].FillOpacity = 50; 
selection[0].fill.opacity = 50; 

... но он не работает.

Я собираюсь сделать это неправильно или это просто невозможно?

ответ

4

У вас нет доступа к нему, так как вы не можете получить к нему доступ даже в иллюстраторе. Это только свойство Photoshop. Я также проверил документацию, чтобы убедиться. Что вы могли бы сделать это, хотя и было бы выполнить ту же самую вещь:

doc = app.activeDocument; 
i = 0 
var selection = doc.selection[i]; 
var storedColor = doc.selection[i].fillColor; 

//new object with only fill, we send it to back so it doesn't overlap stroke, if there is one 
var newObject = app.selection[i].duplicate(doc, ElementPlacement.PLACEATEND); 
//turn off fill for first object 
doc.selection[i].filled = false; 
i = i + 1; 
newObject.stroked = false; 
//apply stored color from earlier to new shape 
newObject.fillColor = storedColor; 
newObject.opacity = 50; 
newObject.name = "50p fill"; 
+0

просьба рассмотреть или принять этот ответ, если этого достаточно. – Lukasz

+0

Это, по сути, то, что я закончил делать. Хотя это «грязнее», чем использование тонированного цвета пятна, как и другой ответ, тонирование может делать странные вещи, и я специально хотел изменить непрозрачность. Благодаря! – cr0ybot

2

Что я сделал, чтобы решить проблему, чтобы применить spotcolor к объектам, где я использует свойство оттенок

var docRef = app.activeDocument; 
var selectedObjects = docRef.selection; 
var theTint; 
var fillwithSwatch = function (pathItems, sname){ 

for (var i=0;i< pathItems.length; i++){ 
pathItems[i].fill = true; 
theTint = pathItems[i].fillColor.gray; 
pathItems[i].fillColor = docRef.swatches.getByName (sname).color ; 
pathItems[i].fillColor.tint = theTint; 
} 
} 
theTint = fillTint(selectedObjects); 
// the spotcolor should be in the swatchpallet already 
fillwithSwatch (selectedObjects, "myBlue"); 
+0

Спасибо за альтернативный метод. Это «чище», чем дублирование объектов, но мне нужно было изменить непрозрачность. Я определенно буду помнить об этом, если снова столкнуться с подобной ситуацией. – cr0ybot