InDesign CS3は前バージョンのスクリプトも動かせるように設計されている(...)の続き
前の記事は勢いで書いたところがあって、誤解を招いていそうなので、整理します。
InDesign CS3に前バージョン(CS、CS2)のスクリプトを動かせるように設計されているというのは前に書いたとおり。それを検証するため、CS3で変更になったためそのままでは実行できないスクリプトを実行してみたわけです。
変更になった部分は、検索設定のオブジェクトの名称で、CS、CS2ではfindPreferences、CS3ではfindTextPreferencesになっています。その結果
Scripts Panel直下=CS3のインタープリタが実行
findPreferences部分でエラーが発生
Version 4.0 Scriptsフォルダ内=インタープリタ:CS2_J(4.0)が実行
findPreferences部分でのエラーは出なかった
Version 3.0 Scriptsフォルダ内=インタープリタ:CS_J(3.0)が実行
findPreferences部分でのエラーは出なかった
という具合になり、リファレンスにあるとおり、指定したフォルダでは前バージョン(CS、CS2)のスクリプトを動かせるように設計されていることがわかった、ということです。
ところが、これでスクリプトを修正しなくても大丈夫か、ということになると、そうではないんじゃないか。今回試したスクリプトでは別の部分で想定外の動きをした。それは、配列を読み込んでダイアログを生成する部分で、前バージョン(今回試したのは元々CS2用に作られたスクリプト)では意図した数のチェックボックスが生成されるのに、CS3の互換インタプリタでは配列よりも少ない数のチェックボックスしか生成されなかったという点です。この点を捉えてタイトルに(動かないけど)と付けた訳です。
ですから、旧バージョン用のフォルダに入れても意味がないと言っているのではなくて、旧バージョン用のフォルダに入れても意図通りに動かないケースがあるということを言いたい訳です。これをバグと呼ぶかどうかは現時点ではなんとも言えません(何せ1つのスクリプトしかやってないので)。
もちろん、明らかに動かないだろうと想定されるケースもあります。例えばGoLiveパッケージ。CS3ではこの機能がなくなったので、旧バージョン用のフォルダにGoLiveパッケージを実行するスクリプトを入れても、GoLiveパッケージが実行できるとは思えません(もしかして動く? ま、ま、まさかぁ)。そんなわけで、もう少し調査・検討する必要がある訳です。
でも、そんなことをしているより、さっさとCS3に対応するように書き直した方が速いのかも……。そうか、アドビはそれを狙っているのか!?