【イラレ用スクリプト】選択まわりで表示がおかしかった時にredraw入れてみたら解決した話

アートボード外にあるオブジェクトを選択したいのに、上手くいかなかったときの備忘録。

以下の条件でスクリプトを実行してみる。
【aiの内容】
アートボード外のオブジェクトは0
【スクリプトの内容】
①選択>作業アートボードのすべてを選択
②選択>選択範囲を反転
[ダメだったコード]
app.executeMenuCommand("selectallinartboard");
app.executeMenuCommand("Inverse menu item");
alert(activeDocument.selection.length);

これだと、0ではなくてなぜか2が返ってくる…

画面上の動きは、
alertを消した後(スクリプト終了後)は選択オブジェクト無しだけど、
alertを消す前は何かゴミを選択している形跡が…。

描画が追いついてないのかな?と思って、alertの前に
$.sleep(3000);
を入れてみたけど意味なかった。

ので、画面をredrawさせてみる

【OKだったコード】
app.executeMenuCommand("selectallinartboard");
app.executeMenuCommand("Inverse menu item");
redraw();
alert(activeDocument.selection.length);

というわけで、redraw入れたら解決でした。

この記事が気に入ったらサポートをしてみませんか?