首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用或禁用选定的图层掩码

启用或禁用选定的图层掩码
EN

Stack Overflow用户
提问于 2022-11-10 07:49:14
回答 1查看 18关注 0票数 0

有人能帮助我如何禁用或启用所选层的图层掩码吗?我想通过纸片实现自动化,而不是用行动。

我还不能提供任何代码,因为我还不知道该怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-10 09:02:50

Scriptlistener是你在这里的朋友。

代码语言:javascript
复制
// Switch off any dialog boxes
displayDialogs = DialogModes.ERROR; // OFF

layermask(true);
alert("Layer mask enabled");
// or
layermask(false);
alert("Layer mask disabled");

// Switch back on any dialog boxes
displayDialogs = DialogModes.ALL; // ON

function layermask(bool)
{
  // =======================================================
  var idsetd = charIDToTypeID( "setd" );
  var desc22 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref5 = new ActionReference();
  var idLyr = charIDToTypeID( "Lyr " );
  var idOrdn = charIDToTypeID( "Ordn" );
  var idTrgt = charIDToTypeID( "Trgt" );
  ref5.putEnumerated( idLyr, idOrdn, idTrgt );
  desc22.putReference( idnull, ref5 );
  var idT = charIDToTypeID( "T   " );
  var desc23 = new ActionDescriptor();
  var idUsrM = charIDToTypeID( "UsrM" );
  desc23.putBoolean( idUsrM, bool ); // value set here
  var idLyr = charIDToTypeID( "Lyr " );
  desc22.putObject( idT, idLyr, desc23 );
  executeAction( idsetd, desc22, DialogModes.NO );

}

使用一些操作管理器代码来获取我们可以使用的图层掩码的状态:

代码语言:javascript
复制
// Switch off any dialog boxes
displayDialogs = DialogModes.ERROR; // OFF


var layerMaskState = false;

s2t = stringIDToTypeID;
var r = new ActionReference();
r.putProperty(s2t('property'), s2t('userMaskEnabled'));
r.putEnumerated(s2t('layer'), s2t('ordinal'), s2t('targetEnum'));

// Make sure that the object that executeActionGet
// returns contains this key (which means the layer has a mask):

var d = executeActionGet(r);
if (d.hasKey(s2t('userMaskEnabled')))
{
  layerMaskState = d.getBoolean(s2t('userMaskEnabled'));
}

// Toggle it!
layerMaskState = !layerMaskState;
layer_mask(layerMaskState);


// Switch off any dialog boxes
displayDialogs = DialogModes.ALL; // OFF


function layer_mask(bool)
{
  // =======================================================
  var idsetd = charIDToTypeID( "setd" );
  var desc22 = new ActionDescriptor();
  var idnull = charIDToTypeID( "null" );
  var ref5 = new ActionReference();
  var idLyr = charIDToTypeID( "Lyr " );
  var idOrdn = charIDToTypeID( "Ordn" );
  var idTrgt = charIDToTypeID( "Trgt" );
  ref5.putEnumerated( idLyr, idOrdn, idTrgt );
  desc22.putReference( idnull, ref5 );
  var idT = charIDToTypeID( "T   " );
  var desc23 = new ActionDescriptor();
  var idUsrM = charIDToTypeID( "UsrM" );
  desc23.putBoolean( idUsrM, bool ); // set here
  var idLyr = charIDToTypeID( "Lyr " );
  desc22.putObject( idT, idLyr, desc23 );
  executeAction( idsetd, desc22, DialogModes.NO );
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74385677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档