今回は、Illustrator CS2でエリアテキスト内に流し込む文字に交互に色を付けるスクリプトです。エリアテキスト内などの文字に、交互に色を指定していくのは手間がかかります。このサンプルでは、最初に2種類の文字列を入力すると、指定された色で交互にエリアテキスト内に文字が流し込まれます。
文字の色は以下の2行で指定します。CMYKカラー指定の場合は4つのパラメータでCMYKの順番、RGBカラー指定の場合はRGBの順番になります。
color1 = setColor(100,0,0,0);
color2 = setColor(0,100,0,0);
2種類の文字を交互に色づけして表示するだけでなく3種類、4種類なども可能です。
【CMYKで指定する場合】
str1 = prompt("文字1","ABC");
str2 = prompt("文字2","DEF");
count = parseInt(prompt("繰り返し回数",10));
txt = "";
for(i=0; i< count; i++) txt += str1 + str2;
color1 = setColor(100,0,0,0);
color2 = setColor(0,100,0,0);
sel = activeDocument.selection;
for (i=0; i< sel.length; i++)
{
cnt = 0;
txtRange = sel[i].textRange;
txtRange.contents = txt;
for(cnt=0; cnt< txt.length;)
{
for (j=0; j< str1.length; j++)
{
txtRange.characters[cnt++].fillColor = color1;
}
for (j=0; j< str2.length; j++)
{
txtRange.characters[cnt++].fillColor = color2;
}
}
}
function setColor(C,M,Y,K)
{
var txtColor = new CMYKColor();
txtColor.cyan = C;
txtColor.magenta = M;
txtColor.yellow = Y;
txtColor.black = K;
return txtColor;
}
【RGBで指定する場合】
str1 = prompt("文字1","ABC");
str2 = prompt("文字2","DEF");
count = parseInt(prompt("繰り返し回数",10));
txt = "";
for(i=0; i< count; i++) txt += str1 + str2;
color1 = setColor(255,0,0);
color2 = setColor(0,0,255);
sel = activeDocument.selection;
for (i=0; i< sel.length; i++)
{
cnt = 0;
txtRange = sel[i].textRange;
txtRange.contents = txt;
for(cnt=0; cnt< txt.length;)
{
for (j=0; j< str1.length; j++)
{
txtRange.characters[cnt++].fillColor = color1;
}
for (j=0; j< str2.length; j++)
{
txtRange.characters[cnt++].fillColor = color2;
}
}
}
function setColor(R,G,B)
{
var txtColor = new RGBColor();
txtColor.red = R;
txtColor.green = G;
txtColor.blue = B;
return txtColor;
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
もうすぐ2007年。でも、この原稿書いたのは梅雨の時期...。
今日より、ツヤツヤになったキーボードから新品のキーボード。やっと、まともに文字が入力できそう。

color1 = setColor(100,0,0,0);
color2 = setColor(0,100,0,0);
2種類の文字を交互に色づけして表示するだけでなく3種類、4種類なども可能です。
【CMYKで指定する場合】
str1 = prompt("文字1","ABC");
str2 = prompt("文字2","DEF");
count = parseInt(prompt("繰り返し回数",10));
txt = "";
for(i=0; i< count; i++) txt += str1 + str2;
color1 = setColor(100,0,0,0);
color2 = setColor(0,100,0,0);
sel = activeDocument.selection;
for (i=0; i< sel.length; i++)
{
cnt = 0;
txtRange = sel[i].textRange;
txtRange.contents = txt;
for(cnt=0; cnt< txt.length;)
{
for (j=0; j< str1.length; j++)
{
txtRange.characters[cnt++].fillColor = color1;
}
for (j=0; j< str2.length; j++)
{
txtRange.characters[cnt++].fillColor = color2;
}
}
}
function setColor(C,M,Y,K)
{
var txtColor = new CMYKColor();
txtColor.cyan = C;
txtColor.magenta = M;
txtColor.yellow = Y;
txtColor.black = K;
return txtColor;
}
【RGBで指定する場合】
str1 = prompt("文字1","ABC");
str2 = prompt("文字2","DEF");
count = parseInt(prompt("繰り返し回数",10));
txt = "";
for(i=0; i< count; i++) txt += str1 + str2;
color1 = setColor(255,0,0);
color2 = setColor(0,0,255);
sel = activeDocument.selection;
for (i=0; i< sel.length; i++)
{
cnt = 0;
txtRange = sel[i].textRange;
txtRange.contents = txt;
for(cnt=0; cnt< txt.length;)
{
for (j=0; j< str1.length; j++)
{
txtRange.characters[cnt++].fillColor = color1;
}
for (j=0; j< str2.length; j++)
{
txtRange.characters[cnt++].fillColor = color2;
}
}
}
function setColor(R,G,B)
{
var txtColor = new RGBColor();
txtColor.red = R;
txtColor.green = G;
txtColor.blue = B;
return txtColor;
}
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
もうすぐ2007年。でも、この原稿書いたのは梅雨の時期...。
今日より、ツヤツヤになったキーボードから新品のキーボード。やっと、まともに文字が入力できそう。

- Google Maps API逆引きクイックリファレンス―WEB2.0対応
- 古籏 一浩
- 毎日コミュニケーションズ 2006-09
- おすすめ平均
ようやく出ました。使えるGoogleMapsリファレンス。
by G-Tools , 2006/12/04