Illustratorでは、図形を描く時に正確なサイズを指定することができます。また、一度描いてしまった図形でも、正確に位置や幅を変更することができます。しかし、複数の図形を同じ横幅、縦幅にしようとすると、ひとつずつ図形を選択してから幅を入力しなければなりません。複数の図形を選択してしまうと、その複数図形を囲む幅、つまり全体で指定した幅で設定されてしまうためです。
このようなとき、スクリプトを使った方が手軽な場合があります。特に、画像だけ、テキストだけ、パスだけといった条件を指定することができるのが便利なところです。
今回紹介しているスクリプトは、あらかじめ幅を変更する図形や画像を複数選択してから実行してください。
まず、最初のスクリプトは選択した図形を横幅100、縦幅80ポイントにするものです。
このようなとき、スクリプトを使った方が手軽な場合があります。特に、画像だけ、テキストだけ、パスだけといった条件を指定することができるのが便利なところです。
今回紹介しているスクリプトは、あらかじめ幅を変更する図形や画像を複数選択してから実行してください。
まず、最初のスクリプトは選択した図形を横幅100、縦幅80ポイントにするものです。
w = 100;
h = 80;
selObj = activeDocument.selection;
for (i=0; i
{
selObj[i].width = w;
}
if (selObj[i].height > h)
{
selObj[i].height = h;
}
}
}
横幅や縦幅を変えるのにスクリプトを修正するのが面倒な場合には、prompt()を使って実行時に幅を指定する、以下のスクリプトを使います。ただし、このスクリプトはIllustrator CS2以降でのみ動作します。
w = eval(prompt("横の最大幅を入れてください", 100));
h = eval(prompt("縦の最大幅を入れてください", 80));
selObj = activeDocument.selection;
for (i=0; i
{
selObj[i].width = w;
}
if (selObj[i].height > h)
{
selObj[i].height = h;
}
}
}
これらのスクリプトは画像だけを対象にしていますが、逆に画像以外を対象にする場合には
if(selObj[i].typename == "RasterItem")
を
if(selObj[i].typename != "RasterItem")
に変更してください。なお、リンクされた画像の場合は、RasterItemでなくPlacedItemという名前になるので必要に応じて変更してください。
また、パスだけを操作対象にする場合には
if(selObj[i].typename == "RasterItem")
を
if(selObj[i].typename == "PathItem")
にします。文字であれば以下のようになります。
if(selObj[i].typename == "TextFrame")
シンボルの場合は以下のようになります。
if(selObj[i].typename == "PluginItem")
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
週末は楽しい牧場祭りでした。21世紀は、男は携帯の中で飼育されるわけですね……。それにしても、いろいろな牧場ができたなあ。
・男の子牧場
< http://ameblo.jp/cair/entry-10260663830.html
>
新JavaScript例文辞典にJavaScript/Ajaxライブラリも追加するようにしました。でも、膨大な数なので時間をみて少しずつといった程度です。
・新JavaScript例文辞典
< http://www.openspc2.org/reibun/javascript2/index.html
>
素材も順次追加中。昔公開していたDVサイズのCG素材も再公開しました。
・フルサイズ フリー素材
< http://footage2.openspc2.org/sozai/fullsize/
>
・ハイビジョン映像素材
< http://www.openspc2.org/HDTV/
>
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
by G-Tools , 2009/05/18