Не совсем нашел то, что искал в поиске, поэтому просил помощи.
У меня есть Javascript, который будет зацикливать группу изображений и складывать их в Photoshop. Хотите переименовать слои по мере их поступления. Кажется, что имя первого слоя всегда называется «Слой 0», поэтому я смог выбрать и изменить его с помощью следующего:
var doc = app.activeDocument;
doc.activeLayer = doc.artLayers.getByName("Layer 0");
// Execute Action
try {
var currentName = "Layer 0";
var newName = "Base_color";
var currentLayer = doc.activeLayer;
if (currentLayer.name == currentName) {
currentLayer.name = newName;
};
catch (e) {
alert('error’);
}
Некоторые из моих коллег не могут запустить скрипт, потому что их имя первого слоя не «Layer 0», а «RGBA» (что приводит к сбою скрипта).
Вместо того, чтобы делать оператор OR с «RGBA», я хотел бы создать код для изменения имени первого слоя независимо от того, как он назван, чтобы сохранить его защищенным от ошибок.
Попытка что-то вроде этого:
var doc = app.activeDocument;
var firstlayername = app.activeDocument.activeLayer.name;
doc.activeLayer = firstlayername;
// Execute Action
try {
var currentName = firstlayername;
var newName = "Base_color";
var currentLayer = doc.activeLayer;
if (currentLayer.name == currentName) {
currentLayer.name = newName;
};
catch (e) {
alert('error’);
}
Не могу заставить его работать. Есть ли способ получить имя первого слоя, перенесенное в Photoshop, не зная его, и изменить его?
Спасибо!
Вот мой цикл:
// Stack images in order of numerical import. Remove all ending numbers.
while(app.documents.length>1){
app.activeDocument = app.documents[1];
var layerName = decodeURI(activeDocument.name).replace(/[0-9]*\....$/,'');
activeDocument.activeLayer.duplicate(documents[0]);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
activeDocument.activeLayer.name = layerName;
};