2

私に問題があるのか​​、CS5 JavaScript エンジンに問題があるのか​​を調べています。私の Photoshop ドキュメントには、「A」と呼ばれる 1 つのレイヤーと、「グループ 1」と呼ばれるレイヤー グループがあります。

次の例を検討してください。

var Mess = "";
var Layers = app.activeDocument.layers;
alert(Layers.length);
for (n=0; n<app.activeDocument.layers.length; n++) {
  Mess = Mess + app.activeDocument.layers[n].name + "\r\n";
}
alert(Mess);

これにより、長さが 2 と表示され、レイヤーが一覧表示されます。
A
グループ 1

これまでのところすべて順調です。しかし、foo ループで代わりに変数 Layers を使用すると、別の結果が得られます。

var Mess = "";
var Layers = app.activeDocument.layers;
alert(Layers.length);
for (n=0; n<Layers.length; n++) {
  Mess = Mess + app.activeDocument.layers[n].name + "\r\n";
}
alert(Mess);

以前と同様に長さ 2 を取得しましたが、現在は 1 つのレイヤーのみがリストされています:
A

2 つのコード例が同じ結果を生成するべきではありませんか?!?

4

1 に答える 1

4

LayersPhotoshop DOM の予約語だと思います。Photoshop CS6 JavaScript リファレンス

var Mess = "";
var lyrs = app.activeDocument.layers;
alert(lyrs.length);
for (n=0; n<lyrs.length; n++) {
    Mess = Mess + app.activeDocument.layers[n].name + "\r\n";
}
alert(Mess);

これは、変数の名前を変更した後、現在は機能しているようです。

于 2012-05-24T01:17:31.540 に答える