Преименувайте само видими слоеве в javascript на illustrator

Супер нубски въпрос. Намерих код, който преименува моите слоеве от най-високо ниво като „Рамка 1, Рамка 2 и т.н...“ Как мога да накарам преименуването да се прилага САМО за видими слоеве? Вторият въпрос е как да преименувам само избран слой (независимо дали е видим или не) на „Рамка 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);  
        }  
}   

Благодаря ви много за вашата помощ!


person NoobUser    schedule 18.09.2015    source източник


Отговори (1)


Всичко това може лесно да се намери в референция за скриптове на илюстратор.

Този скрипт прави и двете неща, които поискахте, просто коментирайте извикването на функция, което не искате да изпълнявате, и поставете префикса на слоя или името, което искате за слоя, в извикването на функцията.

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
}   
person TinMonkey    schedule 01.10.2015
comment
Върши работа! Благодаря ти много! - person NoobUser; 06.10.2015
comment
Не се притеснявайте, радвам се да помогна. Вероятно трябва да маркирате като отговорено, така че да изчезне от списъка с въпроси без отговор. - person TinMonkey; 06.10.2015