DTP屋さんの為のJavaScriptショートTips.1

みなさん、ちょっと怖いことをお話します。今年に入って既に1Q分消費してしまいました。1/4過ぎちゃったって事です。ほ〜んと怖いですよね。って書き出しで行こうかなって思ってたら更にひと月過ぎようとしているという…(^-^;
という事で、みなさまに置かれましては御清栄の事とお慶び申し上げます。この季節は良いですよね過ごしやすくって通勤も楽ちんです。この春からこどもと電車通勤しているのです。電車での通学は旅行に行くみたいで楽しいと当人はゴキゲンですが、わたしとしては起床時間も前倒しなのでちょっと大変w
で、今回はJavaScriptの基本的な部分での操作に対する事を書いておこうと思います。


JavaScriptのオブジェクトというのはとても柔軟です。
まずは以下のJSONについて…

var vers =
{
   "Illustrator":"26.2.1",
   "InDesign":"17.2",
   "Photoshop":"23.3.0"
}

versというobjectは3つのプロパティを持っています。
例えば、このversオブジェクトのIllustratorを参照する場合はオブジェクト名にプロパティ名称をドットでつないで…

alert(vers.Illustrator);

こんなふうになります。さらにこのJSONの構造をよく見てみると3つのプロパティ・値の組が同様の状態で列記されているという事に気が付かれるかと思います。こういった構造にアクセスする方法がもうひとつありまして、phpなんかで言う連想配列の書き方なんですが、

alert(vers["Illustrator"]);

この例の様にversオブジェクト自体を配列のように扱えるんですね。
ここで、IllustratorアプリケーションのDOMについて見てみます。Applicationクラスの子要素としてdocumentsってコレクションがありますが、これについても以下のように書くことが出来ます。

alert(app["documents"]);

 

更にその子要素のコレクションを参照するには…

alert(app["documents"][0]["layers"][0]["textFrames"][0]["contents"][2])

 

これで「(アプリケーションで開いている)1番めのドキュメントの1番目のレイヤーの1番目のテキストフレームの3番目の文字」(配列のインデックスは0から始まることにご注意ください。)という事になります。
もう訳解んないですよねぇ〜w

 

最後におまけ…

先のversオブジェクトを以下のように…

var vers =
{
   "Illustrator":"26.2.1",
   "InDesign":"17.2",
   "Photoshop":"23.3.0"
}
var f = new File("~/Desktop/versObject_omv.xml");
if (f.open("w"))
{
   f.write(vers.reflect.toXML());
   f.close();
}

と言う具合にするとObjectModelViewerに読み込めるやつが出来ちゃいます。つ〜ことで御活用いただけたらと思いますです(^-^;

ten_a

Graphic Designer, Scripter and Coder. Adobe Community Professional.

シェアする