It sounds super simple, I just want to arrange all my selected layers in a simple grid. This is what I whipped up:
var doc = app.activeDocument;
var hasLayers = doc.activeLayer.layers.length;
if (hasLayers > 0) {
var selectedLayers = doc.activeLayer.layers;
var cols = 11;
var rows = 11;
var xOffset = 512;
var yoffset = 512;
for(var i = 0; i < selectedLayers.length; i++){
var layer = selectedLayers[i];
var row = Math.floor(i / rows);
var col = i % cols;
var newX = col * xOffset;
var newY = row * yoffset;
layer.translate(newX, newY);
}
doc.activeLayer = doc.activeLayer;
doc.activeLayer = doc.backgroundLayer;
alert("It worked!");
} else {
alert("Didnt work");
}
I just get:
Error 21: undefined is not an object. Line: 2 -> var hasLayers = doc.activeLayer.layers.length;
How can I make it work?
I tried removing the if statement altogether but it still didn't work.