InDesignやIllustratorのJavaScriptでオブジェクトの種類(クラス名)を調べる方法がたくさんあるよ(2):使用ソフトのバージョンによって使い分けよう
スポンサードリンク
昨日のAdobeのソフトでオブジェクトの種類(クラス名)がわかるための方法が3つあるよ、というので、
(function(){ var objDoc = app.activeDocument; var selObjs = objDoc.selection; alert(selObjs[0].constructor.name); // ①JavaScript実装 alert(selObjs[0].typename); // ②PICTRIX風 alert(selObjs[0].toString() ); // ③古籏一浩風 })();
これをIllustrator CS3で、テキストを選んで実行させると、
AI CS3:
① TextFrame
② TextFrame
③ [TextFrame ]
と得られるので、どれがいい? ていう話なんですけれども、大本命の①はIllustrator 10では動かないことが判明!
AI 10:
① ×(エラー)
② TextArtItem
③ [TextArtItem ]
よって、
という感じがしました。②の方法は、Adobeのオブジェクトだけ出来るのかな?
一応、比較のために、自作のクラスで試すため下記コードをIllustrator 10/Illustrator CS3で実行したところ、
function Hoge() {}; var x = new Hoge; alert(x.constructor.name); // ①JavaScript実装 alert(x.typename); // ②PICTRIX風 alert(x.toString()); // ③古籏一浩風
AI 10:
① undefined
② undefined
③ [object Object]
AI CS3:
① Hoge
② undefined
③ [object Object]
となりました。これから言えるのは、typenameというプロパティは自作のオブジェクトじゃ使えないこと、AI 10が微妙、ていうことです。ちなみにコアオブジェクトにもtypenameプロパティはない。あったら怖い。
参考:
任意のオブジェクトのクラス名をどうやって得るの? - 理系学生日記 [d.hatena.ne.jp]
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2640
コメントする