再帰処理を使って、psdファイルのレイヤセットの中に格納されている特定の名前(pers)を持つレイヤセットの表示・非表示をを切り替えたい
解決したいこと
再帰処理を使って、psdファイルのレイヤセットの中に格納されている特定の名前(pers)を持つレイヤセットの表示・非表示をを切り替えたい
発生している問題・エラー
特定の名前(pers)グループが他のグループの中に格納されている場合だと、表示・非表示の切り替えが実行されない。
該当するソースコード
var sets = new Array();
var match = "pers";
docObj = activeDocument;
function getAllLayers(docObj) {
for(var i=0; i<docObj.layers.length; i++){
try {
if (docObj.layerSets["pers"].visible == false) {
docObj.layerSets["pers"].visible = true;
} else {
docObj.layerSets["pers"].visible = false;
}
}
catch (e) {
; // do nothing
}
} for (i = 0; i<docObj.layerSets.length; i++) {
getAllLayers(docObj.layerSets[i])
try {
if (docObj.layerSets["pers"].visible == false) {
docObj.layerSets["pers"].visible = true;
} else {
docObj.layerSets["pers"].visible = false;
}
}
catch (e) {
; // do nothing
}
}
}
自分で試したこと
「photoshop 再帰処理」などでググり、何度かそれらしいスクリプトを移植するなどしましたが、いずれも"pers"グループが他のグループの中に格納されている場合だと、表示・非表示の切り替えが実行されませんでした。
かれこれ三週間くらい悩んでいるので、何かしらアドバイスを頂ければと思い質問させて頂きました。
0