3

javascriptでpathItemの塗りつぶし不透明度にアクセスする方法はありますか? 全体の不透明度にアクセスできますが、ストロークを完全に不透明に保ちながら、塗りつぶしの不透明度を下げたいと考えています。

ドキュメントには何も見つかりませんし、この質問をしている他の人も見つかりません。

全体の不透明度を次のように設定できます。

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

2 に答える 2

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";
于 2012-04-26T16:06:08.670 に答える
2

問題を解決するために私がしたことは、ティント プロパティを使用するオブジェクトにスポット カラーを適用することです。

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" ); 
于 2013-05-01T11:41:34.603 に答える