ランダムにテキストを配置する (Fireworks CS3)

Fireworksは古くから (確かver 3だったかと思います) JavaScriptにより制御することができました。そこで今回はFireworks CS3を使ってランダムに文字を配置するスクリプトを用意しました。テキストの位置をランダムに表示するもの、位置とサイズをランダムに配置するもの、位置とサイズとカラーをランダムに配置するもの3種類です。
使用前に注意点があります。PhotoshopやIllustratorなどはスクリプトファイルの拡張子は.jsまたは.jsxですが、Fireworksの場合は.jsfになります。スクリプトの実行はコマンドメニューの「スクリプトの実行...」を選択し実行するスクリプトファイルを指定します。
最初のスクリプトは文字サイズ14ptでFireworks !!の文字をランダムに配置するものです。


str = "Fireworks !!";
docObj = fw.getDocumentDOM();
textR = {
initialAttrs:{
alignment : "left",
size:"14pt"
},
textRuns:[
{
changedAttrs:{},
characters:str
}
]
}
for (i=0; i<10; i++)
{
var x = Math.random() * (docObj.left + docObj.width);
var y = Math.random() * (docObj.top + docObj.height);
docObj.addNewText({left:x, top:y, right:x+100, bottom:y+50},true);
docObj.setTextRuns(textR);
}

配置する文字を変更するには一番最初の行である
str = "Fireworks !!";

の"〜"内を変更してください。文字サイズを変えるには
size:"14pt"

の14ptの部分を変更してください。
次のスクリプトは文字サイズを9pt〜48pt未満までランダムに表示するものです。
str = "Fireworks !!";
docObj = fw.getDocumentDOM();
textR = {
initialAttrs:{
alignment : "left",
size:"14pt"
},
textRuns:[
{
changedAttrs:{},
characters:str
}
]
}
for (i=0; i<10; i++)
{
var x = Math.random() * (docObj.left + docObj.width);
var y = Math.random() * (docObj.top + docObj.height);
var sz = Math.random() * 48 + 9;
textR.initialAttrs.size = sz + "pt";
docObj.addNewText({left:x, top:y, right:x+400, bottom:y+50},true);
docObj.setTextRuns(textR);
}

文字の表示サイズの範囲を変えるには
var sz = Math.random() * 48 + 9;

の48と9の値を変えてください。
次のスクリプトはランダムに色を変えるものです。
str = "Fireworks !!";
docObj = fw.getDocumentDOM();
textR = {
initialAttrs:{
alignment : "left",
size:"14pt"
},
textRuns:[
{
changedAttrs:{},
characters:str
}
]
}
for (i=0; i<10; i++)
{
var x = Math.random() * (docObj.left + docObj.width);
var y = Math.random() * (docObj.top + docObj.height);
var sz = Math.random() * 48 + 9;
var R = Math.floor(Math.random() * 256).toString(16);
var G = Math.floor(Math.random() * 256).toString(16);
var B = Math.floor(Math.random() * 256).toString(16);
if (R.length < 2) R = "0" + R;
if (G.length < 2) G = "0" + G;
if (B.length < 2) B = "0" + B;
textR.initialAttrs.size = sz + "pt";
textR.initialAttrs.fillColor = "#"+R+G+B;
docObj.addNewText({left:x, top:y, right:x+400, bottom:y+50},true);
docObj.setTextRuns(textR);
}

Fireworksはマクロメディア製のため、扱うデータやオブジェクトがPhotoshopやIllustratorと異なっています。少しばかり慣れが必要かと思います。

[サンプルをダウンロード]