javascriptオブジェクトモデルについて

[4233]javascriptオブジェクトモデルについて | 投稿者:オバマ | 投稿日:2010/02/21(Sun) 14:28:10
indesignでjavascriptを勉強中のものです。
いまやscriptを覚えなければ乗り遅れるような時代になってきたみたいで...トホホ。

ExtendScript Toolkit付属のPDFや古旗さんの著書「自動化実例集」などを読みながら学習しているのですが...

本題です。
関数や変数の処理等はとても詳しくどの本でも、皆様の有用なscriptを読んでいけばなんとなくですが分かるのですが...

各adobeソフトのオブジェクトの値の読み方が分かりません。
たとえば、文字パレットにあるツメの値のオブジェクトモデルの値がjavaで言えばどういう値になるとかです...

皆様のブログ等で初心者に対する勉強法なども拝見するのですが、プログラム的なとこが...正直分からないのです。

ExtendScript Toolkitにもヘルプやお~まちさんのサイトも拝見しましたが、なにをどういう形で読めばいいのか...途方にくれています。


正直みなさんみたく、分かりません。なにか初心者の方の突破口になるような回答がほしいです。

つまらない投稿でしたら、すいません。
» 1
[4236]Re: javascriptオブジェクトモデルについて | 投稿者:いき | 投稿日:2010/02/22(Mon) 09:26:23
ぜんぜんわかっていないという意味ではオバマさんと大差ないのですが、ひとつの考え方として。
操作したい部分の親オブジェクトが何にあたるかを想像し、そこからたどっていけば良いと思います。

まず、お~まちさんのサイトで「カーニング」を検索すれば難なく KerningValue に行き着くと思います。
※お~まちさんのサイトではVBのオブジェクトモデルを一覧にしてくださっているので、JavascriptではKを小文字にしないとエラーになります。

次に、今回操作したい部分が実際にカーソルを置いたテキスト挿入点であれば、親オブジェクトが何にあたるかを調べます。
素晴らしいことに、お~まちさんは親オブジェクトも一覧にしてくださっています。

今回の例で言えば、すぐ上の親オブジェクトがinsertionPoints、その上がselectionになろうかと思います。
そこで、

app.activeDocument.selection[0].insertionPoints[0].kerningValue = -200;

などとしてやれば、挿入点のカーニングを-200にしてやることができます。
» 2
[4237]Re: javascriptオブジェクトモデルについて | 投稿者:お~まち | 投稿日:2010/02/22(Mon) 10:05:02
ん? 呼びました?(笑)

確かにどの項目がなんという名前かを知るのは、初心者でなくても高い壁です。我々は英語を母国語としていないので。
せっかく私のサイトを訪れていただいたのに、何も分からず帰ってしまわれるのであれば申し訳ありません。一応、わたし流の使い方を教えます。

まず、InDesignの環境設定でツールヒントの表示速度を「オフ」にしていたなら、「標準」か「高速」にしてください。
次に調べたい項目(CS3で文字パネルのツメを例にとります)の、入力欄の前のアイコン部分にカーソルを置きます。
するとツールヒントで「文字ツメ」と表示されるはずです。
そこで、以下のサイトを開いて、
http://www15.ocn.ne.jp/~preopen/iddom/about.html
Googleの検索窓に「文字ツメ」と入力して検索ボタンをクリックしてください。今ならサイト内の「InDesign Object Model - CharacterStyle」がトップに来ます。その中の文章を見ると「文字ツメ」の文字があります。で、その前を見ると「Tsume, Double型」とあるので、「Tsume」というのが何かキーになりそうだ、というのが分かります。
ただ、私のオブジェクトモデルではVB表記になってますので、これはJavaScript(あるいはApple Script)の場合だとどういう表記になるのかを考えなければなりません。(ここは非常に不親切ですが、これを作成する際はVBを使っているのでご容赦)。JavaScriptの文法の特徴などから類推してください。
類推したらExtendScript Toolkitで確認します。すると「tsume」らしいのではないかということでテストします。実行前にエラーがでなければ合っていそう、ということになります。

別の例として、T字形が斜めになっているアイコンは、ツールヒントによって「歪み」という名称であることが分かります。同じように検索すると、やたら「Skew」という文字が目に付くので、これではないかと推測してテストします。

もし、検索して何も見つからない場合は、お~まちが調べ切れていないものです。その場合は自力で調べて
http://www15.ocn.ne.jp/~preopen/contact.html
から「調べてやったから載せとけ」と言ってください。
私もよく使う機能、全く使わない機能がありますので、運悪く全く使わない機能でしたら何のヒントも得られません。(そこは個人ユーザーの限界です)

おっと、長文を書いている間にいきさんが書かれましたね。
ではこの辺で。
» 3
[4239]Re: javascriptオブジェクトモデルについて | 投稿者:kanemu | 投稿日:2010/02/22(Mon) 13:04:59
InDesign上で、なにか調べたいオブジェクトを選択して

var obj=app.activeDocument.selection[0];
$.writeln(obj.properties.toSource().replace(/,/g,","));

このスクリプトをExtendScript Toolkitで実行して、
JavaScriptコンソールを確認してみて下さい。
» 4
[4247]Re: javascriptオブジェクトモデルについて | 投稿者:オバマ | 投稿日:2010/02/22(Mon) 20:22:08
いき様、お~まち様、kanemu様

貴重なコメントありがとうございます。

一つ一つ皆さんの意見を参考にさせていただきました。
やはり皆さんのすばらしい経験からの意見を聞くと、
あ?なるほど! っというのと、コメントから自分で探し出す「楽しさ」みたいなのを感じます。

ホンマにありがとうございます。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア