選択オブジェクト:JavaScript × Illustrator

選択中のオブジェクトを取得

var sel = app.activeDocument.selection;

appは省略できるけど、省略しない方が処理が早いような気がする……けど気のせいかもしれない。 変数selの中に、選択したオブジェクトが前面順に格納されます。

選択オブジェクトの数

var num = sel.length;
var num = app.activeDocument.selection.length;

1番目(最前面)の選択オブジェクト

var frntObj=sel[0];

それぞれのオブジェクトを処理する

for (var i=0; i<sel.length; i++){
   //ここに処理
}

typenameプロパティに注意

テキストフレーム内の文字を選択した場合(文字を反転させている状態)はtypenameプロパティがないためエラー。try…catchで回避する。

選択されたオブジェクトの種類

var sel = app.activeDocument.selection;
for(var i=0; i<sel.length; i++){
   try{ var objType = sel[i].typename;
   }catch(e){
   // 文字が選択されていた場合の処理
   }
}
タイトルとURLをコピーしました