中村勇吾とかユニクロのページでよく見かけるアレ。
【製作過程】
画面サイズは300x100。
レイヤー1に、ダイナミックテキスト(インスタンス名:txt)を含んだMC(インスタンス名:txt_mc)を配置。
ダイナミックテキストに対し、文字サイズ24、フォントタイプ「Arial Black」を指定し、文字の埋め込みを行う。
埋め込んだ文字は、「大文字」「小文字」「数字」「句読点記号」。
レイヤー2の弟1フレームに以下のコードを記述。
//spinTxt関数
function spinTxt(txt) {
//変化文字列
var chrSet:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXY1234567890!#$%&-";
var chrSetLength:Number = chrSet.length;//変化文字列総数
var targetTxt:String = txt;//ターゲットテキスト
var targetTxtLength = targetTxt.length;//ターゲットテキストの文字総数
var speed:Number = 0;//speed定義
//MC「txt_mc」に対してonEnterFrameを実行
//1文字につき10個のランダムテキストを適用
_root.txt_mc.onEnterFrame = function() {
//5フレームでstepを1加算する
var step:Number = Math.floor(speed += 0.2);
for (var i:Number =step; i<targetTxtLength; i++) {
//変化文字列から1文字をランダムに切り取る
var rndTxt:String = chrSet.substr(Math.floor(Math.random()*chrSetLength), 1);
//step番目のターゲットテキスト1文字をランダムテキストに入れ替える
this.txt.replaceText(i,i+1,rndTxt);
}
//step番目のターゲットテキスト1文字を最終形に戻す
this.txt.replaceText(step,step+1,targetTxt.substr(step, 1));
if(step>=targetTxtLength){
delete this.onEnterFrame;
}
};
}
//関数実行
spinTxt("ayabin-ayabin");
【まとめ】
コード太字部分を見ると分かるが、基本的には、テキストのプロパティやメソッドを使って、文字を切ったり張ったり、入れ替えたりしているだけ。青字はMCメソッド。

コメントする