ひよこwebプログラマーの覚え書き

エクセルとwebで効率化しますさせます

*

イラストレーターのjavascriptマクロの注意点

   

Pocket

山程ありますが、その内の一例をご紹介します。

activeDocument.layersで取得できるレイヤーは最上位のレイヤーだけ

サブレイヤーはactiveDocument.layersで取得できません。全てを取得したい場合は再帰処理でlayersのlayersの…と見ていくしか無さそうです。
一番上のレイヤーのサブレイヤーはこんな感じで取得できます。
app.activeDocument.layers[0].layers[0].name

テキストはテキストフレーム

activeDocument.textFramesで全てのテキストを配列で取得できます。Fが大文字になります。
(レイヤーもこれで取得できれば楽なんですが、いい方法はないでしょうか…)
contentsプロパティで内容を取得、変更できます。
alert(activeDocument.textFrames[0].contents); //文字列が表示されます。
activeDocument.textFrames[0].contents = “abcde”; //文字列を”abcde”にします。

可視状態やロックの取得、設定

レイヤーはvisibleプロパティで設定します。
また、親の表示/非表示には影響されません。
activeDocument.layers[0].visible; //trueかfalseが返ります。
activeDocument.layers[0].visible = true; //代入すれば設定できます。

テキストフレームの可視状態ははhiddenで設定します。visibleプロパティでは設定できません。
activeDocument.textFrames[0].hidden = false; //visibleとは逆で、falseで見られるようになります。

ロックはlockedで設定します。trueでロック、falseで解除です。
可視状態でなければロックの設定も解除もできません。親が非表示となっている場合も操作できません。
ロックしていてもjavascriptでオブジェクトの操作は可能です。

activeDocument.textFrames[0].locked = false;
activeDocument.textFrames[0].contents = “abcde”;

テキストフレーム・レイヤーをすべて表示させる場合、カッコ悪いですが以下のようにしています。

エラー処理

必ずしておいたほうがいいです。
ただエラーメッセージはかなりアバウトです。親レイヤーに原因がある場合も多々あります。しっかり確認しましょう。
メッセージは英文で返ってきますが、そんなに難しくはありません。
大体この2パターンです。
modified:変更できない(ロックか可視状態が原因)
outofboundsは配列のインデックスが最大値を超えているか下回っています。

 - Illustrator, javascript

Message

メールアドレスが公開されることはありません。

  関連記事

logo_JavaScript
javascriptで配列・オブジェクトの判定

返り値はboo …

Adobe_Illustrator_Icon_CS6-150x150
javascriptで全ての外部リンクにイベントトラッキングを付ける

まずはコードから [crayon-58420fc093857372893607/ …

Adobe_Illustrator_Icon_CS6-150x150
jQueryを強制的に読み込ませる方法

コンソールからJSを走らせる時、jQueryが無い場合があります。 そこで一旦j …

images
URLバーのURLを変更する方法

URLバーのURLを変更する方法。 history.replaceState() …

Adobe_Illustrator_Icon_CS6-150x150
after擬似要素が分裂する場合の対処方法

after擬似要素の付いている要素にappendすると、afterが分裂します。 …

Adobe_Illustrator_Icon_CS6-150x150
jQuery環境で画像ポップアップ(lightbox)はどれを使えば良いか

素直にlightbox2がオススメです。jQuery1.11系で動きます。 fa …

Adobe_Illustrator_Icon_CS6
イラストレーターで改行した文字を装飾したい時

イラストレーターの文字に関するアピアランスの話です。 イラストレーターで改行した …

Adobe_Illustrator_Icon_CS6-150x150
イラストレーターでjavascriptを使う

イラストレーターではjavascriptを使ってスクリプトを組めます。 しかしh …

Adobe_Illustrator_Icon_CS6-150x150
イラストレーターのjavascriptマクロのサンプル

最上位レイヤーを削除する場合はこのような感じです。 deleteitemsに任意 …

Adobe_Illustrator_Icon_CS6-150x150
jQueryでselect要素、option要素の中からテキスト・文字列で選択する方法

例としてこんなselect要素、option要素があるとします。そして青森を選択 …