javascript - Photoshop Javascript 奇怪的行为

标签 javascript photoshop flash-cs5 photoshop-script

我试图弄清楚是我的问题还是 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/

相关文章:

javascript - 如何禁用 jQuery Mobile 中的链接按钮?

javascript - jQuery - 在新选项卡表单中打开链接提交

javascript - 将 Photoshop HSL 调整图层转换为颜色矩阵?

Photoshop CS6 中的 Applescript : can't save a JPEG! 为什么?

html - 如何设置背景图片不能重复

影片剪辑结束的Flash事件监听器?

actionscript-3 - AS3 删除 ENTER_FRAME 中的项目

JavaScript - 在显示 :none and display:block 之间添加转换

Javascript FileSaver 在写入大量文件后保存空文件

javascript - Photoshop 脚本 - 更新窗口中的进度条