1

入力に基づいて、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で始まるようになります。

4

0 に答える 0