如何通过 Jsx 在 Photoshop 中选择退出 'Transparency Shapes Layer'

How can I opt out 'Transparency Shapes Layer' in Photoshop via Jsx

我相信我可以使用调用 Action 脚本的 JSX 来完成,但我认为如果我可以直接通过 JSX 来完成,那会更有效率。不幸的是,我在 Adob​​e 的 JavaScript 脚本参考 pdf 中找不到关于此选项的任何信息...

this option here :"Transparency Shapes Layer"

到目前为止我有这个想法是检查图层是否处于 LinearDodge 模式,如果是则取消选中 "Transparency Shapes Layer"
(我是新手所以这是为了测试目的):

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];
          }

}

我相信说 Action Script 是指 Action Manager 代码,而说 JSX 是指 Photoshop DOM?无论如何,Action Manager 代码通常比 DOM 更有效(高达千倍..当然看起来你正在召唤恶魔)如果你在 JS 脚本参考中找不到任何东西,这个函数可能不会'存在于 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);
}