2

我试图弄清楚我或 CS5 JavaScript 引擎是否有问题。我的 Photoshop 文档有一个名为“A”的图层和一个名为“Group 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
Group 1

到目前为止一切都很好。但是如果我们在 foror 循环中使用变量 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,但现在只列出了一层:
A

这两个代码示例不应该产生相同的结果吗?!?

4

1 回答 1

4

我认为Layers是 Photoshop 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 回答