1
ExtendScriptToolkit
事始め1
DTPスクリプトもくもく会 #5
2
このスライドの目標
ESTKの基本操作を覚える
開発環境としてのESTKの
基本的な使い方を覚えよう!
InDesign/IllustratorでExtendScriptを
実行・デバッグできるようになる
Adobeアプリケーションの
スクリプトを開発するための第一歩を踏み出そう!
3
メニュー
▪ESTKでできること
▫ESTKのセットアップ
▫基本操作
▫実行とデバッグ
4
ESTK に関する書籍のご紹介
今日話す内容はほとんど書かれています!
5
ESTK でできること
Adobeアプリケーションと連携するスクリプト開発ツールである
シンタックスハイライト、自動インデント、デバッグ機能、
オブジェクト構造を表示するデータブラウザ、コンソール機能…
といった開発環境としての機能を持ち、ESTKからAdobeアプリを指定
して、作業中のスクリプトを実行することができる。
もしスクリプトが動作を終了しなくなってしまった(無限ループ等)場合
でも、ESTKからスクリプトの停止が可能。
まずはESTKからスクリプト開発しよう!
6
メニュー
▫ESTKでできること
▪ESTKのセットアップ
▫基本操作
▫実行とデバッグ
7
セットアップ
まずはAppNapをオフにする
ESTKは動作が緩慢なので、これをやらないとストレスが募ります。
ターミナルで以下のコマンドを実行し、AdobeアプリのAppNapを強制
的にオフにします。
while read domain; do defaults write "$domain"
NSAppSleepDisabled -bool YES; done < <(defaults domains | awk
'BEGIN {FS=", "} {for(i=1;i<=NF;i++)print $i}' | grep -i adobe)
詳細はこちらを参照してください。
ESTKのプチフリについて
8
セットアップ
フォントと文字サイズを変更しよう
環境設定を開き、表示されるフォントとサイズを変更します。
9
セットアップ
色の設定も変更できるが…
実は日本語版のESTKはバグがあって色の変更ができません。
もし色を変えたいというかたは、
こちらを参考にしながらトライしてみてください。
ESTKを改造、というかバグ・フィクスを…
10
メニュー
▫ESTKでできること
▫ESTKのセットアップ
▪基本操作
▫実行とデバッグ
11
基本操作
スクリプトを動作させる
アプリケーション
ターゲットエンジン
アプリケーション
フレームの切り替え
入力補完する
オブジェクトモデル
操作ボタン群
画面分割ボタン
ワークスペース
12
基本操作
スクリプトを動作させるアプリケーションの指定
インストールされていて、スクリプトを動かせるAdobeアプリがリストに
一覧表示されます。ここからアプリを指定してスクリプトを実行します。
13
基本操作
ボタン各種
① スクリプトを指定したアプリケーションで実行
② 実行中のスクリプトを一時停止
③ 実行中のスクリプトを停止
④ 一時停止しながらスクリプトを細かく実行
⑤ さらに細かく、関数も参照しながら細かく実行
⑥ ⑤で参照している関数を終わらせるところまで実行
ちょっぴりデモ
① ② ③ ④ ⑤ ⑥
14
基本操作
入力補完するライブラリ
デフォルトではネイティブJavaScript、ScriptUIがオンになっており、必
要に応じてInDesignやIllustratorのオブジェクトモデルを補完可能。
15
基本操作
入力補完するライブラリ
・入力補完にInDesignのオブジェクトモデルを設定した場合
・デフォルト以外をオフの場合
16
補足:オブジェクトモデル
オブジェクトとは
ExtendScriptの元であるJavaScriptはオブジェクト指向言語のひとつ。
詳しくは前掲書「第8章 JavaScriptのオブジェクト」を参照。
オブジェクトモデルとは
オブジェクトをモデル化したもの。
お〜まちさんのこちらがイメージしやすいかも。
InDesignオブジェクトモデル理解のための顔オブジェクトモデル
スクリプトは基本的に、オブジェクトをひとつひとつ辿りながら、オブジ
ェクトが持つプロパティを参照したりメソッドを実行したりして処理を行
います。
ヘルプ>オブジェクトモデルビューアで確認可能(英語)。
17
メニュー
▫ESTKでできること
▫ESTKのセットアップ
▫基本操作
▪実行とデバッグ
18
実行とデバッグ
まずはやってみよう
alert(123);
実行すると「123」とだけ表示されるダイアログが現れます。
※JavaScriptの作法として、末尾にセミコロン「;」を入れる(宗派あり)
alert("あいう");
文字列は「"」か「'」で囲みます。そうしないと変数であると捉えられてし
まいます。文字は引用符で囲む、ということに例外はないので覚えてく
ださい。
19
実行とデバッグ
オブジェクトモデルを覗いてみよう
alert(app);
実行すると「[Object Application]」と表示されます。
これはオブジェクトを直接参照した場合に出るもので、このオブジェク
トが何者かを示しています(詳細は割愛します)。
alert(app.name);
今度はスクリプトを実行しているアプリケーション名が表示されます。こ
れはApplicationオブジェクトのnameプロパティを参照し、そこに格納
されている値を見ています。
20
実行とデバッグ
データブラウザを覗いてみよう
ESTKには、データブラウザというオブジェクトモデルをリアルタイムに
確認できる機能が用意されています。
先ほどの「app.name」を探してみてください。
21
実行とデバッグ
データブラウザを覗いてみよう
データブラウザにはいろんなアイコンが並んでいますが、それぞれ意味
があります。
:真偽値  :数値  :文字列
:オブジェクト  :メソッド  :null
22
実行とデバッグ
デバッグのしかた
スクリプトを作る上で避けては通れないのがデバッグです。最初からバ
グ=不具合を出さずに作ることはほぼ不可能なので、作り上げたスクリ
プトをいかにデバッグするかが技量を問われるところです。
僕は以下のようなものを使いながらデバッグします。
・alertメソッド(ダイアログを表示)
・$.writelnメソッド(コンソールに表示)
・$.bp()(ブレークポイント)による一時停止とデータブラウザ
・ステップイン実行
・ヒットカウントを表示

More Related Content

PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process
PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
PDF
ドメイン駆動設計のための Spring の上手な使い方
PDF
ドメイン駆動設計 複雑さに立ち向かう
PDF
Azure Searchで作る検索サービス
PPTX
開発環境をWindowsからMacに移行してみた話
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis...
Storytelling For The Web: Integrate Storytelling in your Design Process
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR...
2024 Trend Updates: What Really Works In SEO & Content Marketing
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計 複雑さに立ち向かう
Azure Searchで作る検索サービス
開発環境をWindowsからMacに移行してみた話
Ad

Slides mkmk5