Adobe InDesign JavaScriptでexit()が使えるって誰も知らない?
タイトル修正しました。理由は末尾に。
昨日、Photoshop、Illustrator、InDesignのアップデートが出ましたね。私はまだしてないです。Twitter見てたらいろんな情報が出てて皆さん人柱になるのが好きだなー、でも楽しそう。参加しようかな。
ところで今は「初級者から脱出するためのInDesignスクリプト講座」の内容を考えているところです。今書き出したところではざっと6~7時間のボリュームになっています。これを1日で行うのか、1~2時間ずつ何回かに分けてやるのか、1時間弱に小分けにして必要なところだけ受けられるようにするのか考えています。でも独りよがりな結論になりそうなので、アンケートを取ります。アンケートの準備ができたらTwitterでも告知しますね。
さて本題。講座の中の1項目として「exit()使ってますか」という題名で、「exitでスクリプトを途中で終了させることで入れ子の数を減らしてコードを読みやすくしよう」というテーマで話をしようと思っています。たとえば
if(app.documents.length==0){ alert("ドキュメントが開かれていません"); }else{ if(app.selection.length==0){
みたいにif文でスクリプトの実行前提を書く場合、
if(app.documents.length==0){ alert("ドキュメントが開かれていません"); exit(); //スクリプト終了 } if(app.selection.length==0){
とすることで入れ子がなくなって読みやすくなるというテクニックです。これは関数の中からも使えるので、いきなりスクリプトを終了したいときに便利です。
そのため、改めてexit()について調べようとしたところ、これがどこにも記載がない。ESTKのオブジェクトモデルビューアにもないし「JavaScript exit」で検索しても「JavaScriptでexitはありません」といったWebの話しか出てこない。古旗さんの『Adobe JavaScriptリファレンス』やサイト(JavaScript関係)にも記述がない。
これは一体どういうことなのだろう。私は以前から(少なくても3年以上前だと思う)使っているというのに。もしかして隠し機能だったの?
ということで、Adobe JavaScriptでexit()が使えるのは知ってるよ、とか、○○に記述があるよ、という人は是非是非教えてください。
2017年4月8日 追記
再確認したら、使用できるのはInDesignだけのようです。なので、タイトルをAdobeからInDesignに修正しました。