Hatena::ブログ(Diary)

なにする?DTP+WEB

2009-09-29

「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」がそれにあたる

f:id:kamiseto:20090929175637p:image:w400

アプリケーションを頂点にツリー状にオブジェクトが連なっているのが判ると思う。

インデザインだとまた違う形になっている。

主にここに出ているオブジェクトを操作していくことになる。

例えば、あるパスについて操作したい場合。

app.activeDocument.pathItems[0]

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

上の図を

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

f:id:kamiseto:20090929175635p:image:w400

気がついた人もいると思うが、出ている単語がちょっと違う。

例えば、パスの場合、実際にスクリプトで使うのは「pathItems」という形、

最初の図にある「PathItem」というのはオブジェクト名で、

スクリプトでこれが何のオブジェクトが調べるときに使うぐらい。

「pathItems」に注目すると、「I」が突然大文字になっていたりする。

ここらへんのルールもあまり説明されていなくて、最初はとまどう要素だったりする。

これはキャメルケース - Wikipediaといって

スクリプト言語によって多少ルールが違ったりする。

「pathItems」と最後にsがついて複数形にもなっている。

だから「Story」もちゃんと「stories」と複数形で書いてあげなければいけない。(僕の作った図ではちゃんと間違ってる)

複数形なんて判らない?「ExtendScript Toolkit」で書けばちゃんと補完してくれます。



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



かなり、駆け足で解説したが。

だいたいこんな感じ。

全体像は判ってもらえらだろうか?



えっ「100%」になってない?

そうそう、あとの30%は「正規表現」。

正規表現」についても、調べれば沢山でてくるので、調べれば大丈夫。

入門 正規表現 ~検索・置換・テキスト処理に強くなる!


えっ、こんな解説じゃ、始める気にならない。

いやいや。。

ここまで読んだのなら既にスクリプターの入り口に立っているはず、

すべてを足して100%にする必要なんかなくて、

それぞれ、必要な部分をちょっとづつかじってこればいいんです。

実際、バランスよく全体の10%ぐらいを

「if文(もしも〜」と

「for文(繰り返し)」と

「多少の正規表現」と

「ほんの数個のScripting Object Model」とか

覚えればけっこうなんとかります。

続く

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

1クリックでスクリプトを実行するためのパレット。文字サイズは特大。
// 一部の人向け でっかいシングルクリック対応スクリプトパネル // b:たたむ機能付加、パネルタイトルに分岐、JS以外にも対応したつもり // c : カーソルキーに反応しないようこっぴどく修正、
任意のレイヤー内の半透明ピクセルの不透明度をもりもり上げる。もり ...
//opacity_Enhancer.jsx for PhotoshopCS or later/ by (z-)2012.01.19 //CSで使用する場合は拡張子を.jsに変更してください &am
ver_b ドキュメントの綴じ方向を変えるテスト。カット&ペーストじゃ? ...
//test_id_bindingSwitcher by(z-) ver_b   function layerCond(vis, loc)&
ver_el フレームを中のテキストにフィットする。各種オプションあり。?? ...
//FitTextFrame.jsx by(z-) ver_el   ///////////////// UIパーツ表示関連 /////////// function pointSi
ver_d 仕上がりに沿ったアタリ罫があればプリント前に警告するイベント ...
//id_findTrimLines.jsx プリント前に仕上がり罫さがして警告 2011.11.18 (z-) ver_d #targetengine "findTrimLines
この日記のはてなブックマーク数