「ExtendScriptをどうやって覚えたらよいのか?」について考えてみる

ExtendScriptとはJavaScriptAdobeが独自に拡張(Extend)したもの。
Adobe InDesignAdobe Illustrator、AdobePhotoshopとかで使う。


ExtendScriptを理解するにはまずはJavaScriptについて知る必要がある。
JavaScriptを理解すれば40%は出来たようなものだ。
JavaScriptの習得については、既に様々な良書が出ているし。
ネットにも沢山の情報が溢れている。
だから比較的、初心者にも簡単に学習を始めることができる。
さらに、「ExtendScript Toolkit」という開発環境まで用意されている。
補完機能もついているし、インターネットブラウザーJavaScriptを学習するよりも効率がいい。
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

そしてJavaScriptを拡張(Extend)した部分が30%。
いったい「何を拡張した」のかを知る必要がある。
まずは「Core JavaScript Classes」から。
代表格は「$」(ヘルパーオブジェクト)。
あと「File」(ファイルオブジェクト)、「Folder」(フォルダーオブジェクト)等。
また、それぞれのアプリケーションにおいては、
インターネットブラウザーJavaScriptが、DOM(ドキュメント オブジェクト モデル)を扱うように、
ExtendScriptでは「Scripting Object Model」を扱う。
「Scripting Object Model」を扱うんだ。
たとえば、イラストレーターの場合
「IllustratorCS3_Scripting_Guide.pdf」の、15P
「2The Illustrator Scripting Object Model」がそれにあたる

アプリケーションを頂点にツリー状にオブジェクトが連なっているのが判ると思う。
インデザインだとまた違う形になっている。
主にここに出ているオブジェクトを操作していくことになる。
例えば、あるパスについて操作したい場合。

app.activeDocument.pathItems[0]

と書いて「アプリケーション」→「アクティブドキュメント」→「パス」とたどっていくことになる。

上の図を
日本語との対応づけをして判りやすいようにしてみたのがこれ

気がついた人もいると思うが、出ている単語がちょっと違う。
例えば、パスの場合、実際にスクリプトで使うのは「pathItems」という形、
最初の図にある「PathItem」というのはオブジェクト名で、
スクリプトでこれが何のオブジェクトが調べるときに使うぐらい。
「pathItems」に注目すると、「I」が突然大文字になっていたりする。
ここらへんのルールもあまり説明されていなくて、最初はとまどう要素だったりする。
これはキャメルケース - Wikipediaといって
スクリプト言語によって多少ルールが違ったりする。
「pathItems」と最後にsがついて複数形にもなっている。
だから「Story」もちゃんと「stories」と複数形で書いてあげなければいけない。(僕の作った図ではちゃんと間違ってる)
複数形なんて判らない?「ExtendScript Toolkit」で書けばちゃんと補完してくれます。



また、複数形ということは、「複数のもの」が入っている可能性があるので、JavaScriptで「length」(含まれている数)を調べたり、「for文(繰り返し処理」を使ったりして処理していくことになります。



かなり、駆け足で解説したが。
だいたいこんな感じ。
全体像は判ってもらえらだろうか?



えっ「100%」になってない?
そうそう、あとの30%は「正規表現」。
正規表現」についても、調べれば沢山でてくるので、調べれば大丈夫。
入門 正規表現 ~検索・置換・テキスト処理に強くなる!


えっ、こんな解説じゃ、始める気にならない。
いやいや。。
ここまで読んだのなら既にスクリプターの入り口に立っているはず、
すべてを足して100%にする必要なんかなくて、
それぞれ、必要な部分をちょっとづつかじってこればいいんです。
実際、バランスよく全体の10%ぐらいを
「if文(もしも〜」と
「for文(繰り返し)」と
「多少の正規表現」と
「ほんの数個のScripting Object Model」とか
覚えればけっこうなんとかります。
続く