今回は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;
}