// name:sort-l-to-r.jsx
// description:sort layers from left to right
// source:https://github.com/ff6347/after-effects-script-snippets/blob/master/sort-l-to-r.jsx
(function(thisObj) {
// 比较A、B图层,大就返回1,否则-1
var compare = function(a, b) {
if(a.xy[0] < b.xy[0]) {
return -1;
}
if(a.xy[0] > b.xy[0]) {
return 1;
}
return 0;
};
// 基于选择的图层,获得图层、以及它的位置
var main = function() {
var curComp = app.project.activeItem;
if (!curComp || !(curComp instanceof CompItem)) {
alert('请选择/打开合成');
return;
}
var arr = [];
for (var i = 0; i < curComp.selectedLayers.length; i++) {
var l = curComp.selectedLayers[i];
var pos = l.transform.position.value;
arr.push({layer: l, xy: pos});
}
//重新排序
arr.sort(compare);
// 移到最后
for(var j = 0; j < arr.length; j++) {
arr[j].layer.moveToEnd();
}
};
var run = function(f) {
f();
};
run(main);
}(this));