Illustrator ExtendScript установил FILL непрозрачность выделения - PullRequest
3 голосов
/ 28 марта 2012

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

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

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

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;

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

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

Ответы [ 2 ]

4 голосов
/ 26 апреля 2012

Вы не можете получить к нему доступ, поскольку вы не можете получить к нему обычный доступ даже в иллюстраторе. Это только свойство 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";
2 голосов
/ 01 мая 2013

Для решения этой проблемы я применил плашечный цвет к объектам, в которых я использую свойство оттенка

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" ); 
...