グループ化する
グループをつくる(中身は空)
var grp=app.activeDocument.groupItems.add();
オブジェクトをグループに入れる
obj.move(grp,ElementPlacement.PLACEATEND);
move(relativeObject, insertionLocation)
引数1 | relativeObject | グループを指定 |
引数2 | insertionLocation | 重なり順を指定 ElementPlacement.INSIDE ……内側 ElementPlacement.PLACEATBEGINNING ……最前面 ElementPlacement.PLACEATEND ……最背面ElementPlacement.PLACEBEFORE ……前ElementPlacement.PLACEAFTER ……後 |
グループの中にオブジェクト作成
var lineObj = grp.pathItems.add();
選択オブジェクトをグループ化/メニュー使用(CS6以上対象)
app.executeMenuCommand("group");
選択オブジェクトをグループ化
var grp=app.activeDocument.groupItems.add();
var sel=app.activeDocument.selection;
for(i=0; i < sel.length; i++){
sel[i].move(grp, ElementPlacement.PLACEATEND);
}
グループ解除
選択オブジェクトのグループ解除/メニュー使用(CS6以上対象)
// グループ解除
app.executeMenuCommand('ungroup');
グループ化を1段階解除
var sel=app.activeDocument.selection;
for(var i=(sel.length-1);i>-1;i--){
sel[i].move(activeDocument, ElementPlacement.PLACEATEND);
}
いろいろ
ドキュメント内のグループの数(入れ子になってるグループもカウント)
var groupcount=app.activeDocument.groupItems.length;
グループ内のすべてのアイテムを処理
配列をわたす
groupLoop(sel);
//グループの中身にアクセス
function groupLoop(objs){
for(var i=0;i<objs.length;i++){
if(objs[i].typename=="GroupItem"){
groupLoop(objs[i].pageItems);
}else{
//ここに処理をかく
}
}
return;
}
変数をわたす
groupLoop(sel[i]);
//グループの中身にアクセス
function groupLoop(obj){
if(obj.typename=="GroupItem"){
for(var j=0;j<obj.pageItems.length;j++){
groupLoop(obj.pageItems[j]);
}
}else{
//ここに処理をかく
}
return;
}