【イラレ用スクリプト】選択まわりで表示がおかしかった時に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入れたら解決でした。