入力に基づいて、Adobe Illustrator で選択したレイヤーの名前を変更するスクリプトを作成しようとしています。文字「A」から始めた場合にのみ、なんとか機能させることができました。たとえば、文字「B」から開始すると、最初のレイヤーがスキップされ (「A」になるため)、2 番目のレイヤーからのみ名前の変更が開始されます (「C」で試している場合、最初のレイヤーがスキップされます)。 2 層など...)。.. カウンターをリセットする方法はありますか?名前の変更は、選択した最初のレイヤーから開始できますか?
これが私のコードです:
var doc = app.activeDocument,
sel = doc.selection,
rename = prompt("Enter the name:","");
done = 0;
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var r = /\[\w+\]/i;
var matching = rename.match( r );
var letter = str.search( matching );
if (letter>=0)
{
for(i=letter; i<sel.length;i++)
{
var nextChar = str.charAt(i);
if(nextChar){
theRenaming=rename.replace(/\[\w+\]/, nextChar);
sel[i].name = theRenaming;
letter++;
// document.write(theRenaming);
}
else
sel[i].name = rename;
}
//console.log(letter);
} else
{
alert("Nothing Found!");
}
これがどのように機能するかです: レイヤーを選択した後、このスクリプトは名前を入力するように求めます (例: レイヤー[A]).. レイヤーを見つけてレイヤーAに名前を変更し (ブラケットを削除)、アルファベットベースで繰り返します選択の長さについて。
私の問題:それが文字BまたはCまたはHの場合、レイヤーの名前が2番目のレイヤーまたは3番目のレイヤーのみにそれぞれ8番目に変更され、レイヤー1からBで始まるようになります。