我正在尝试实施的任务非常简单:
我需要在指定的图层集(组)中获取所有图层(一级)的列表,并将此列表写入文件。
代码很简单(也很有效):
function indexCurrent(document){
var log = new File(indexLocation+document.name+'.js');
alert("Collecting data");
var images = document.layerSets.getByName("Images").layers;
var imagesLength = images.length;
var layers = [];
alert("Iterating " + imagesLength + " layers");
for(var jj = 0, jL = imagesLength; jj < jL; jj++){
layers.push('\t\t\'' + images[jj].name + '\'');
}
alert("Writing " + layers.length + " layers");
log.open('w');
log.write('\n\t\'' + document.name + '\': [\n' );
log.write(layers.join(",\n"));
log.write('\n\t]\n');
log.close();
}
此代码有效,但对于150多个图层,“迭代”和“写入”行之间需要数小时。
我在这里已经阅读了所有相关问题,但这没有用。
我确信应该有更有效的方法来完成这么简单的任务。
我在Windows 7上运行Photoshop CS6。
感谢。
答案 0 :(得分:0)
我建议你尝试从通过DOM访问图层切换到通过动作管理器获取它们。我很确定你会以这种方式获得更好的表现。我对动作管理器代码很糟糕所以我不能给你一个有用的例子 - 只是谷歌的东西:)
答案 1 :(得分:0)