2012年5月18日金曜日

InDesign CS6で、file.openDlgの動作がおかしい?

ブログに公開した方が良いと思うのでこちらに。
InDesign CS6 体験版にて、会社の製品のスクリプトの検証をしていて、おかしな動作を見つけた。
テスト環境:Mac OS X 10.6.8, InDesign CS6 バージョン8.0 (体験版)
var indFile = app.activeDocument.fullName;
var selectFile = indFile.openDlg('テキストファイルを選択');
というスクリプトを書いて、スクリプトパネルから実行する。
すると、あれれれ?
拡張子が.inddファイルしか選択できない。テキストを選択させたいんですが……。

選択元になってるファイルの拡張子が影響するのかな?と思い
var myFile = new File('/works/script_test/tmp.txt');
var selectFile = myFile.openDlg('テキストファイルを選択');
テキストファイルだけが選択される。ふむ。

デフォルトで変なフィルタがかかっているなら、フィルタを設定し直せば直るんじゃないかと思い、
var indFile = app.activeDocument.fullName;
var selectFile = indFile.openDlg(
    'テキストファイルを選択',
    function(f){/\.txt$/i.test(f.name)}
);
なにも選択できなくなってしまった!

ちなみに、Windows版ではこの問題が発生しなかった。
また、File.openDialogを使った場所にも、問題はなかった。

バグ報告はしたけれど…直るのかなこれ。

2 件のコメント:

kamiseto さんのコメント...

Mac OS X 10.7.3, InDesign CS6 バージョン8.0で試してみました。

var F = new File;
F.openDlg('test');
全てのファイルが選択出来る状態

var fF = app.activeDocument.fullName;
fF.openDlg('test');
  全てのファイルが選択出来る状態

F.openDlg('test',function(f){return /\.txt$/i.test(f.name)});
結果を返すことで、txtのみ選択出来る状態

以上試した結果
こちらの環境では全て期待どおり動作しているようです。
とりあえず参考までにお知らせいたします。

kanemu1117nc さんのコメント...

> kamisetoさん
検証ありがとうございます!
Lionで再現せずですか…。
SnowLeopard固有の問題なのかな?
自分のマシンはアップグレードの繰り返しでcs2から全バージョン入ってますので、個人環境の可能性もありますね。

社内で声をかけていろいろな環境で試してみます、ありがとうございました!