Photoshop Java脚本以获取活动文档中的所有层
原学程将引见Photoshop Java剧本以夺取运动文档中的一切层的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我信任Photoshop的编辑者之前应当评论辩论过这个成绩。我写了1个处理计划以下。我以为这在逻辑上是准确的,但是成果是没有准确的。有人不妨赞助检讨代码中的毛病的地方,或许对于这个主题有设法主意吗?我想夺取文档中的一切层。
编码:
function getAllLayersInLayerSets(layerNodes) {
var retList = [];
for (var i=0; i<layerNodes.length; i++) {
if(layerNodes[i].layerSets.length > 0)
{
var tmp = getAllLayersInLayerSets(layerNodes[i].layerSets);
var j = (tmp == null) ? ⑴ : tmp.length⑴;
while(tmp && j>=0)
{
retList.push(tmp[i]);
j--;
}
}
for(var layerIndex=0; layerIndex < layerNodes[i].artLayers.length; layerIndex++)
{
var layer=layerNodes[i].artLayers[layerIndex];
retList.push(layer);
}
}
return retList;}
异常感激您的赞助或者评论辩论。
推举谜底
我晓得这是1个旧帖子,但是这能够对于某些人有效。
我正在寻觅1个函数,它不妨让我在Photoshop Comp中取得一切ArtLayer,包含嵌套在组中的层。下面的函数前往不决义,所以我对于其停止了修正并使其正常任务。
var doc = app.activeDocument;
var allLayers = [];
var allLayers = collectAllLayers(doc, allLayers);
function collectAllLayers (doc, allLayers){
for (var m = 0; m < doc.layers.length; m++){
var theLayer = doc.layers[m];
if (theLayer.typename === "ArtLayer"){
allLayers.push(theLayer);
}else{
collectAllLayers(theLayer, allLayers);
}
}
return allLayers;
}
佳了闭于Photoshop Java剧本以夺取运动文档中的一切层的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。