仅重命名 Illustrator 中的可见层 javascript

Rename only visible layers in illustrator javascript

超级菜鸟问题。我发现一个代码将我的顶层重命名为 "Frame 1, Frame 2, etc..." 如何让重命名仅应用于可见层?第二个问题是如何仅将选定图层(无论是否可见)重命名为 "Frame 1" 或我选择的任何内容而不影响文档中的任何其他图层?

这是代码。

    var doc = app.activeDocument;  

    idLayers(doc); // Rename layers  

    function idLayers(doc){  
        for(i=0;doc.layers.length>i;i++){  
            var currentLayer = doc.layers[i];  
            currentLayer.name= 'Frame  '+(i+1);  
        }  
}   

非常感谢您的帮助!

这些都可以在 illustrator scripting reference 中轻松找到。

此脚本会完成您要求的两件事,只需注释掉您不想 运行 的函数调用,然后在函数调用中输入您想要的图层前缀或名称。

var doc = app.activeDocument;  

idLayers("Frame "); // Rename visible layers 
renameSelectedLayer("Active"); // Rename active layers  

// Hidden layers will be skipped and not counted
function idLayers(prefix){ 
  var counter = 1; 
  for(i=0;doc.layers.length>i;i++){ 
    var currentLayer = doc.layers[i]; 

    // if layer is visible...
    if (currentLayer.visible) {
      currentLayer.name= prefix + counter;
      counter++;  
    }

  }  
}    

function renameSelectedLayer(layerName){ 
  doc.activeLayer.name = layerName
}