[JSFL]選択したテキストを分解して連番MCに 2011年11月17日(木)
テキストの文字を一文字ずつ透明度を変えて出現アニメーションさせたい場合など、
分解したテキストを一文字一文字MC化し、インスタンスに名前をつけて…。
という地道で面倒な作業がFlashの自動化機能のJSFLで自動化できます。
これで文章の直しが入ったときでも面倒な作業を繰り返さずに済みます。
JSFLファイルは、
MAC OSXなら以下のディレクトリ(フォルダ)に保存します。(Flash CS5での例)
Macintosh HD:///Users/*****/Library/Application Support/Adobe/Flash CS5/ja_JP/Configuration/Commands/
WIndowsなら以下のディレクトリ(フォルダ)に保存となると思います。(Flash CS5での例)
¥¥C¥Documents and Settings/*****/Local Settings/Application Data/Adobe/Flash CS5/ja/Configuration/Commands
============================================
選択したテキストを分解し、
文頭の文字から指定した名前の連番のシンボルに変換し、
インスタンスにシンボルと同じ名前を設定する。
============================================
//MCの名前の接頭詞を設定
var mcname = prompt("MovieClip name","");
//MCの中心位置を設定
var position = "top left";
//flash.document
var doc = fl.getDocumentDOM();
//分割したテキストを入れておく箱
var letters = [];
//(選択しているテキストを)分解
doc.breakApart();
//分解したテキストを配列に入れる。
//その際、配列を逆順に並べ替え、文頭の文字が配列の最初にくるようにする。
letters = document.selection.reverse ();
//配列の回数実行
for(var i=0; i<letters.length; i++)
{
//選択を解除
doc.selectNone();
//配列から選択
letters[i].selected = true;
//シンボルに変換
doc.convertToSymbol("movie clip", mcname+i , position);
//インスタンスに名前を付ける
doc.selection[0].name = mcname+i;
}
//完了.
そしてインスタンスしたものを順番にフェードインさせたりするのに使えます。
import caurina.transitions.Tweener;
for(var i=0;i<=9;i++)
{
Tweener.addTween(this["letter_"+i],{alpha:0});
Tweener.addTween(this["letter_"+i],{alpha:1,time:0.7,delay:1+(0.2*i),transition:"easeOutQuad"});
}
