Loop for moving copied layers.
Hello, I have a problem with the loop, I would like it to move each subsequent copied layer by the value entered in the prompt window.
The number of steps is determined by the width of the document divided by the prompt value.
Layers copy the given number of times but do not move. Where have I made a mistake?
I will be grateful for your help.
var docRef = app.activeDocument;
var layerRef = docRef.activeLayer;
app.displayDialogs = DialogModes.NO;
var strtRulerUnits = app.preferences.rulerUnits;
var strtTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.CM;
app.preferences.typeUnits = TypeUnits.MM;
var NEW_LAYER_NAME = "first"; // name
var createNewLayer = function() {
try {
if (app.documents.length) {
var doc = activeDocument;
var layers = doc.artLayers;
var newLayer = layers.add();
if(NEW_LAYER_NAME) {
newLayer.name = NEW_LAYER_NAME;
}
doc.activeLayer = newLayer;
}
} catch (e) {
}
}
createNewLayer();
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// add selection
var r1 = activeDocument.resolution / 5 ;
var x1 = activeDocument.resolution / 5 ;
Circle(0,0,Number(r1),Number(x1));
app.preferences.rulerUnits = strtRulerUnits;
app.preferences.typeUnits = strtTypeUnits;
function Circle(Top,Left,Bottom,Right) {
var desc3 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( charIDToTypeID('Chnl'), charIDToTypeID('fsel') );
desc3.putReference( charIDToTypeID('null'), ref1 );
var desc4 = new ActionDescriptor();
desc4.putUnitDouble( charIDToTypeID('Top '), charIDToTypeID('#Pxl'), Top );
desc4.putUnitDouble( charIDToTypeID('Left'), charIDToTypeID('#Pxl'), Left );
desc4.putUnitDouble( charIDToTypeID('Btom'), charIDToTypeID('#Pxl'), Bottom );
desc4.putUnitDouble( charIDToTypeID('Rght'), charIDToTypeID('#Pxl'), Right );
desc3.putObject( charIDToTypeID('T '), charIDToTypeID('Elps'), desc4 );
desc3.putBoolean( charIDToTypeID('AntA'), true );
executeAction( charIDToTypeID('setd'), desc3, DialogModes.NO );
};
//////////////////////////////////////////////////////////////////////////// fill color
fillColor = new CMYKColor();
fillColor.cyan = 40;
fillColor.magenta = 30;
fillColor.yellow = 30;
fillColor.black = 100;
app.activeDocument.selection.fill(fillColor);
app.activeDocument.selection.deselect();
var doc=app.activeDocument
var docRef = app.activeDocument;
var layerRef = docRef.activeLayer;
var circleLayer= docRef.activeLayer;
var myAnchor = circleLayer.anchor;
doc.activeLayer=circleLayer;
var wys = 1.5;
MoveLayer(circleLayer,1.5,wys) /* move */
function MoveLayer(fLayer,fX,fY) {
var Position = fLayer.bounds;
Position[0] = fX - Position[0];
Position[1] = fY - Position[1];
fLayer.translate(-Position[0],-Position[1]);
}
var oczkaGora = prompt("Oczka góra", "50");
var krokiPoziom = Math.round(activeDocument.width / oczkaGora); // oczka góra
var przesunieciePoziom = activeDocument.width / krokiPoziom;
var szerokosc = activeDocument.width;
var wysokosc = activeDocument.height;
var x;
for (x=0; x<krokiPoziom; x++) {
var test = x;
if (test==0) {
var newLayer = activeDocument.artLayers.getByName("first");
} else if (test==1) {
var newLayer = activeDocument.artLayers.getByName(0);
} else if (test > 1) {
var newLayer = activeDocument.artLayers.getByName(test -1);
var layername = "";
activeDocument.activeLayer.name = layername;
}
newLayer.duplicate();
newLayer.name = (test);
var circleLayer= newLayer;
var myAnchor = circleLayer.anchor;
doc.activeLayer=circleLayer;
var wys = 1.5;
MoveLayer(circleLayer,krokiPoziom ,wys) /* move */
function MoveLayer(fLayer,fX,fY) {
var Position = fLayer.bounds;
Position[0] = fX - Position[0];
Position[1] = fY - Position[1];
fLayer.translate(-Position[0],-Position[1]);
}
}

