Develop and Download Open Source Software

最近の更新

2008-12-30
2007-12-06
2007-11-19
2007-11-14
2007-11-13
2007-11-07
2007-11-03
2007-11-02

Wikiガイド

ExtendScript、Creative Suite特有の情報

(重要)CS2の時点では、コメントに続く "@" 記号で、プリプロセッサ・ディレクティブを記述可能でしたが、CS3からは非推奨となっています。

C言語などと同じく、 "#" 記号を使うように、とのことです。


基礎知識

表題の拡張子"jsxinc"を持つファイルは、ExtendScriptで使う「インクルードファイル」(include、含む)です。

実行する拡張子jsx、またはjsファイルの中で、*1 *2

#include "/Applications/Esther/script/InDesign/library/<file_name>.jsxinc"

若しくは、

// (注)CS3からは非推奨の記述

// @include "../../library/<file_name>.jsxinc"

という形で記述されることで、呼び出せます。
このように指定したファイルの内容は、あたかも呼び出した側のファイル内で記述されているかのような挙動を示しつつ、動作が進行します。

このプリプロセッサ・ディレクティブは、相対パス記述も可能です。

インクルードファイルを用いる必然性

何故、EstherがわざわざJavaScriptで書かれたファイルを「外部から呼び出されるファイル」と「実行だけのスクリプトファイル」と区別しているか?

その理由は、「インクルード(拡張子jsxinc)ファイルの殆どは、他ファイルの内容と合成されてこそ、或る処理内容に対しての役割が明確に定まる」、汎用性/抽象性の高い性質となるように作っているからです。

また、インクルードファイルの存在が、「一個のファイルを実行しさえすれば、望む結果が得られる」と信じて疑わないユーザ(おそらく大多数を占めるであろう)の目に留まることは、却って混乱を招く原因ともなりかねないでしょう。
(開発に関わる目的以外で)徒にファイルを移動されたり編集されたりすれば、元も子もありません。

極論するなら、「一般的な利用者は、jsxファイルをダブルクリックしさえすれば、勝手に動作が始まる」という事実だけを把握していれば充分だろうというのが、筆者の言い分です。

パスの指定方法について

ExtendScript Toolkitのリファレンスには、

#includepath "/Applications/Esther/script/InDesign/library; /Applications/Esther/script/InDesign/setting"

#include "<file_name_1>.jsx"
#include "<file_name_2>.jsx"

直上にある、1行目のような記述で、";"(セミコロン)に区切られたふたつ以上のパスを記述し、自動的に各フォルダ内部を検索し、次行以下で指定したファイルを探し当てる機能がある、と記されています。

ですが、筆者が開発していたバージョン(CS2)では、絶対パスでの指定は上手くいくものの、相対パスでの指定は(単複どちらも)動作しませんでした。


  1. *1Adobe CS2から、JavaScript(ExtendScript)で書かれたスクリプトのファイル拡張子は、"jsx"になった(これまで通りの"js"でも、支障なく動作)。筆者の単なる推測だが、"eXtend"或いは"eXecutable"の"X"が末尾に付けられたものと思われる
  2. *2MacOS X初期設定では、JavaScriptファイルはウェブページ関連の書類と見做される。しかし、CSアプリケーションいずれかがインストールされている場合に、拡張子を"jsx"にしておくと、ファイルアイコン自体、自動的にExtendScriptのそれに差し替えられ、ダブルクリック時に起動するアプリケーションが「ExtendScript Toolkit」へと変化する

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.