クリエイター手抜きプロジェクト[146]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と異なっています。少しばかり慣れが必要かと思います。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>

初音ミクの次はリンだそうで。音楽が駄目な人間なので初音ミクにしゃべらせてみました。歌わせるよりも格段に難しい...
< http://www.openspc2.org/reibun/hatsune_miku/
>

MacOS X Leopardインストールしました。Panther → Tigerよりもメリット大きいかも。ということで勉強がてらいつものパターンで作ってみました。
< http://www.openspc2.org/reibun/MacOSX/Leopard/
>

あと、Photoshop CS3自動化作戦もさりげなくGUI部分を追加してあります。
< http://www.openspc2.org/book/PhotoshopCS3/
>

photo
ActionScript逆引きクイックリファレンス―5&MX&MX2004&8対応 for Windows & Macintosh
田中 康博 古籏 一浩 林 拓也
毎日コミュニケーションズ 2005-12
おすすめ平均 star
starFlash(ActionScript)の開発前の調査にも役立ちます
star良書です。

Flash逆引きクイックリファレンス 8&MX2004対応for Windows & Macintosh 速習Webテクニック FLASH8 ActionScript 実例サンプル47 (Quick master of web technique) おしえて!!FLASH 8 ActionScript (毎コミおしえて!!シリーズ) 有名クリエイターがこっそり教えるFlash作成のウラ技 .fla―Idea of Flash Creation



photo
改訂第4版 JavaScript ポケットリファレンス
古籏 一浩
技術評論社 2006-10-18
おすすめ平均 star
starJavaScript仮免者以上の方へ
starバランスの良いバイブル
star中級者向けです。

[改訂版] PHP ポケットリファレンス (Pocket reference) 改訂新版 SQLポケットリファレンス (Pocket reference) 基礎 Ajax + JavaScript 標準DOMスクリプティング JavaScript+DOMによるWebアプリデザインの基礎 初めてのJavaScript―Ajax&DOM対応



photo
Ajaxライブラリリファレンス
古籏 一浩
ビー・エヌ・エヌ新社 2007-01
おすすめ平均 star
starまずはAjaxを使ってみたい

まるごとJavaScript & Ajax ! Vol.1 標準DOMスクリプティング JavaScript+DOMによるWebアプリデザインの基礎 Ajaxハッカーズ・プログラミング―基礎からprototype.js、Yahoo!UIライブラリ、HTML_AJAXの活用までWebアプリケーション制作のプログラミング・テクニック Ajaxテクニックブック WEB+DB PRESS 総集編 [Vol.1~36]

by G-Tools , 2007/11/05