如何使用Javascript对Illustrator CC中的文档上的所有对象进行分组?我尝试制作一个脚本,我需要对文档中的所有对象进行分组,没有错误和正确。在官方指南中,我没有找到这样的功能。下面的代码没有正确分组对象。对象会更改位置并移动到前景或背景。谁能帮帮我?
function group(){
var docRef = app.activeDocument;
var layerRef = docRef.layers[0];
layerRef.hasSelectedArtwork=true;
docSelection = app.activeDocument.selection;
newGroup = app.activeDocument.groupItems.add();
for ( i = 0; i < docSelection.length; i++ ) {
newItem = docSelection[i];
newItem.moveToBeginning( newGroup );
}
}
答案 0 :(得分:1)
我尝试用你的代码做同样的事情并让一切都逆转。问题在于你在循环中取元素[i]并将其移动到组中,因此选择数组的长度不同,从0到长度的循环不再有效。 我在选择数组上尝试了一个从0到长度的循环,但每次只移动最后一个选择元素:
layer.hasSelectedArtwork = true;
var selection = activeDocument.selection;
var groupItem = layer.groupItems.add();
var count = selection.length;
for(var i = 0; i < count; i++) {
var item = selection[selection.length - 1];
item.moveToBeginning(groupItem);
}
对我来说,它有效。我希望它可以帮到你。
答案 1 :(得分:0)
可以通过以下方式完成:
app.executeMenuCommand('selectall');
app.executeMenuCommand('group');
取消隐藏和解锁所有对象之前可能是有意义的:
app.executeMenuCommand('showAll');
app.executeMenuCommand('unlockAll');
Illustrator的菜单命令的完整(?)列表在这里:https://github.com/ten-A/AiMenuObject