function 图层排序改名(){ var doc = app.activeDocument; // 函数:获取图层的面积 function getLayerArea(layer) { var bounds = layer.bounds; var width = bounds[2].value - bounds[0].value; var height = bounds[3].value - bounds[1].value; return width * height; } // 创建一个包含所有图层及其面积的数组 var layers = []; for (var i = 0; i < doc.layers.length; i++) { var layer = doc.layers[i]; var area = getLayerArea(layer); layers.push({ layer: layer, area: area }); } // 按面积对图层进行排序 layers.sort(function(a, b) { return b.area - a.area; // 从大到小排序 }); // 正则表达式,用于移除图层名称中的最后一个字符 var regex = /(.+)-\d+$/; // 重新排列图层,并重命名 for (var i = 0; i < layers.length; i++) { // 移动图层到文档顶部 layers[i].layer.move(doc, ElementPlacement.PLACEATBEGINNING); // 获取原始图层名称,并使用正则表达式处理 var originalName = layers[i].layer.name; var newName = originalName.replace(regex, "$1"); // 添加新的排序编号 layers[i].layer.name = newName + "-" + (i + 1); } }