|
MacOS10.6.7 CS5(7.0.4)上でのJavaScriptについてご相談したいことがございます。
スクリプトを公開していらっしゃる多くの方が,先頭に(例) var obj = app.selection; // text object? if (obj.hasOwnProperty('baseline') == false) { exit(); } と,選択したオブジェクトがテキストフレームかどうかをプロパティの有無を参照することで判定する記述をなさっていますが,当方ではどうもこの段階でexitしてしまい,先に進みません。 また,これでテキストフレームかフレームグリッドかの違いも判定できればと思っています。
できましたらお力をお借りできますと幸いに存じます。 どうぞよろしくお願い申し上げます。
|
No.5995 2011/08/07(Sun) 19:02:41
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; ja-JP-mac; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19 YTB730
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / mg |
|
|
|
自分もその書き方はしますが、 var obj = app.selection[0]; // TextFrame $.writeln(obj.hasOwnProperty('baseline')); はfalseなので TextFrameを除外して、Story, Text, TextStyleRange, Character, InsertionPointとかをまとめて判定したいときに使います。
TextFrameかどうかは $.writeln(obj.constructor.name === "TextFrame"); でわかります。 TextFrameであると判定した後に $.writeln(obj.parentStory.storyPreferences.frameType === FrameTypes.FRAME_GRID_TYPE); $.writeln(obj.parentStory.storyPreferences.frameType === FrameTypes.TEXT_FRAME_TYPE); でそれぞれフレームグリッドとテキストフレームの判定ができます。
|
No.5996 2011/08/07(Sun) 21:07:10
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / 五月 貴 |
|
|
|
mg様
ご説明ありがとうございます。 PICTRIX様ご作成のプロパティをチェックするスクリプトをCS3とCS5で動かしてみたところ,CS3にはある"baseline"というプロパティがCS5にはないようですね。 ご教示頂いた方法を試してみたいと思います。 場所によって,テキストフレーム/フレームグリッドを使い分ける場合も多々あると思うので両方に対応できた方がよいですね。
|
No.5997 2011/08/07(Sun) 21:23:59
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; ja-JP-mac; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19 YTB730
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / PICTRIX |
|
|
|
お世話になります。 >CS3にはある"baseline"というプロパティがCS5にはないようですね。 PropList では、for( i in object ){ でプロパティを拾っていますが、 AI の場合で恐縮ですが、有るはずのプロパティが、これでリストアップされない物があります。 例えばオブジェクトが TextFtame の場合、characters や lines や・・・ ID でもそうなのかも知れませんので、PropList で表示されるプロパティが全てではないとお考えください。 この程度の知識で作った物です、申し訳ないです。^^;
|
No.5998 2011/08/07(Sun) 22:51:09
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / mg |
|
|
|
InDesignのプロパティ取得は var obj=app.activeDocument.selection[0]; $.writeln(obj.properties.toSource().replace(/,/g,",\n")); とか var obj=app.activeDocument.selection[0]; for (var i in obj.properties) {$.writeln(i+": "+obj.properties[i]);}; でやります。 それで見る限りCS3でも5でも TextFrame に baseline は出てこないはずなんですが…
|
No.5999 2011/08/08(Mon) 11:26:31
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / 五月 貴 |
|
|
|
PICTRIX様
コメントありがとうございます。 お話から察すると,もしかしたらCS5では全プロパティを得るためには別の方法を使わなければいけないのかもしれませんね(ただ私はスキル不足で方法を調べる術すら思いつきませんが)。
JavaScriptに手を出したおかげで受注可能なページ数が飛躍的に増えました。 プログラミングに時間がかかるため看板に掲げる訳にはいかないのですが,お客様からすると小回りの利く個人に発注できてまたメリットがあるかと。
|
No.6000 2011/08/08(Mon) 11:28:09
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; ja-JP-mac; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19 YTB730
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / 五月 貴 |
|
|
|
mg様
入れ違いでプロパティ取得法のご案内をいただきましてありがとうございます。 後で試してみたいと思います。
|
No.6001 2011/08/08(Mon) 11:30:48
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; ja-JP-mac; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19 YTB730
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / PICTRIX |
|
|
|
mgさん曰く> >それで見る限りCS3でも5でも TextFrame に baseline は出てこないはずなんですが…
私の所でも出てきません。CS3
gridDataを調べるのはいかがでしょ。>五月さん
|
No.6002 2011/08/08(Mon) 14:24:25
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; ja-jp) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/4.1.3 Safari/533.19.4
|
|
Re: フレームグリッド/テキストフレームか否かのJavaScriptでの判定について / 五月 貴 |
|
|
|
PICTRIX様
残念ながら,gridDataというプロパティを調べたところFalseでした…。 mg様ご提案の方法で以下のスクリプトを書きました。
var obj=app.activeDocument.selection[0]; $.writeln(obj.parentStory.storyPreferences.frameType === FrameTypes.FRAME_GRID_TYPE); $.writeln(obj.parentStory.storyPreferences.frameType === FrameTypes.TEXT_FRAME_TYPE);
フレームグリッドを選んだところ,当たり前ではありますが2行目はTrue,3行目はFalse。 テキストフレームでは逆の結果になりました。
とりあえず前進できそうです。 皆様ありがとうございました。
|
No.6004 2011/08/09(Tue) 21:46:15
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; ja-JP-mac; rv:1.9.2.19) Gecko/20110707 Firefox/3.6.19 YTB730
|
|