我试图弄清楚是我的问题还是 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,然后列出图层:
一个
第 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,但现在只列出一层:
这两个代码示例不应该产生相同的结果吗?!?
最佳答案
我认为Layers
是Photoshop DOM中的保留字。 Photoshop CS6 JavaScript Reference
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);
更改变量名称后,这似乎现在可以工作。
关于javascript - Photoshop Javascript 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729785/