【Javascript】複合パスの名前は変更できても、パスの名前は変更できない
お世話になっております。
とあるスクリプトに、パスに名前をつけるという動作をいれたのですが、複合パスには名前はつけられるのに、ただのパスには名前をつけられない場合がありました。
chatGPTに聞いてみたら、
-----------------------------------------------------------------
通常のパスに名前を設定できない理由の一つとして、通常のパスが通常のパスであり、その性質が単純なベクトルデータを表現することにある可能性があります。通常のパスは、例えば線や曲線のセグメントなど、単純な図形を構成するために使用されます。このようなパスは、通常は名前が設定されないことが多いため、名前を変更できないことがあります。
一方、複合パスは、複数のパス要素が組み合わさったもので、通常のパスよりも複雑な形状を表現するために使用されます。複合パスに名前を設定できる理由の一つは、それがより複雑な構造を持つため、名前を設定して識別しやすくする必要性があるからです。
-----------------------------------------------------------------
と言われました。こういうことってあり得るのでしょうか?
var sel = app.activeDocument.selection;
var nameArr = ['りんご', 'ごりら', 'ラッパ', 'パセリ'];
for (var i = 0; i < sel.length; i++) {
sel[i].name = nameArr[i];
}これならパスでも変更は出来るけど、
var sel = app.activeDocument.selection;
var nameArr = ['りんご', 'ごりら', 'ラッパ', 'パセリ'];
var changeArr = [];
for(w=0; w<sel.length; w++){
changeArr.push(sel[w]);
}
for (var i = 0; i < changeArr.length; i++) {
changeArr[i].name = nameArr[i];
}例えば上記のように一旦配列にいれたものに対してつけようとすると出来ない、みたいなイメージです。
(ちなみに上記のコードは複合パスでもパスでもちゃんと名前は変更できます。)
同じ作りなんですが、このコードの前後にいろいろな動作が組み合わさっている時、なぜかよく分からないけどパスのものだけ名前が変更できない場面があります。
上のコードは動くので、単純に私が書いたスクリプトのどこかがおかしい可能性が大きいのですが、全部のコードを載せるといろいろ問題があるので載せられません・・・。
実際のコードじゃないと分からないと思うんですが、
可能性として何がおかしいとかってわかりますでしょうか・・・。
ふわっとした質問で申し訳ございません。
