【发布时间】:2012-05-30 13:58:31
【问题描述】:
我正在尝试找出是我的问题还是 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 的长度,然后列出层:
一个
第一组
到目前为止一切都很好。但是如果我们在 for 循环中使用变量 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,但现在只列出了一层:
一个
这两个代码示例不应该产生相同的结果吗?!?
【问题讨论】:
-
alert(app.activeDocument.layers.length)说 2 吗?这是我看到的唯一不同之处。 -
是的,
alert(app.activeDocument.layers.length)说 2。但是如果我通过变量访问图层对象,它的行为就不一样了。 -
这些代码对我来说产生相同的结果...
-
您的意思是
Mess = Mess + Layers[n].name + "\r\n";惹麻烦了吗?我不太了解 JS 来解释其中的区别,但我记得尝试过类似的东西,但不喜欢我得到的东西。
标签: javascript photoshop flash-cs5 photoshop-script