我相信我可以使用JSX调用Action脚本来做到这一点,但是我认为如果我可以直接通过JSX进行操作,这样做会更有效率。不幸的是,我在Adobe的JavaScript脚本参考pdf中找不到关于此选项的任何信息。
this option here :"Transparency Shapes Layer"
到目前为止,我的想法是检查图层是否处于LinearDodge模式,如果要取消选中“透明形状图层”
(我是新手,所以是出于测试目的):
var doc= app.activeDocument;
for (i=0 ; i < doc.layers.length; i++) {
if (doc.layers[i].blendMode == BlendMode.LINEARDODGE) {
//alert ('found it');
//doc.layers[i].blendMode = BlendMode.MULTIPLY;
//doc.activeLayer=doc.layers[i];
}
}
答案 0 :(得分:0)
我相信通过说动作脚本来表示动作管理器代码,而用JSX来表示Photoshop DOM?无论如何,Action Manager代码通常比DOM效率更高(高达数千倍。当然,看起来像是在召唤一个恶魔),并且如果您在JS Scripting Reference中找不到某些内容,则此功能可能不存在DOM:有时AM是唯一的解决方案。只需将丑陋的代码包装在一个函数中,然后将其隐藏在某个地方即可。或创建自己的DOM。
changeTransparencyShapesLayer(false)
function changeTransparencyShapesLayer(value)
{
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated(charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt'));
desc.putReference(charIDToTypeID('null'), ref);
var descOption = new ActionDescriptor();
descOption.putBoolean(stringIDToTypeID('transparencyShapesLayer'), value);
desc.putObject(charIDToTypeID('T '), charIDToTypeID('Lyr '), descOption);
executeAction(charIDToTypeID('setd'), desc, DialogModes.NO);
}