Я пишу javascript для Illustrator, чтобы скопировать выбранные элементы на другой слой, а затем изменить заливку и обводку результирующих элементов, чтобы они не имели заливки и имели одинаковый цвет обводки.В основном это работает - часть дублирования работает нормально, но циклический просмотр массива результирующих элементов для изменения свойств каждого элемента, похоже, влияет только на последний элемент в массиве.
main();
function main() {
//Check if there is a document
if (app.documents.length == 0) {
return;
} else {
//Check Cutter layer exists, get reference to it if it does
var doc = app.activeDocument;
var currentLayer = doc.activeLayer;
if (existCheck(doc.layers, "Cutter")) {
var cutterLayer = doc.layers.getByName("Cutter");
//Get reference to selection (as Array)
var mySelection = app.selection;
//Iterate through array of selected objects, duplicating each one onto Cutter layer
for (var i = 0; i < mySelection.length; i++) {
mySelection[i].duplicate(cutterLayer, ElementPlacement.PLACEATEND);
}
currentLayer.hasSelectedArtwork = false;
var myPathItems = cutterLayer.pathItems;
for (var i = 0; i < myPathItems.length; i++) {
myPathItems[i].filled = false;
myPathItems[i].stroked = true;
myPathItems[i].strokeWidth = 1;
myPathItems[i].strokeColor = doc.swatches.getByName("Cutter").color;
}
}
}
}
//Function to check if a names item exists in an array
function existCheck(myArray, name) {
for (i = 0; i < myArray.length; i++) {
if (myArray[i].name == name) {
return true;
} else {
return false;
}
}
}
Я бы ожидал, что у всех ссылочных элементов пути будет цвет обводки образца "Резак" и нет заливки - но только последний элемент делает.Другие элементы не имеют заливки или обводки.