mod028 複数文字列を左端から徐々に混ぜながらの目的文字列表示
ActionScriptの制御による文字列操作素材です。
定義した複数文字列を左端から順番に混ぜながら、最終的には目的の文字列を表示します。
//複数文字列を左端から順番に表示していく
//最終的には文字配列内の最終文字列を表示する
//text_dtはステージ上ダイナミックテキストインスタンス
//コメントの文字番号とは表示文字列の何文字目かを指す0基点の数値
var DURATION_NUM:Number = 70;//文字シャッフル関数呼び出し間隔(msec)
var intervalId:Number;//setInterval 関数用識別変数
//表示文字配列
//最終要素が最終的に表示される文字列となる
//文字数はすべて統一すること
var STR_ARR:Array = new Array(
"あいうえおあいうえおあいうえおあいうえおあいうえおあいうえお■■",
"かきくけこかきくけこかきくけこかきくけこかきくけこかきくけこ☆☆",
"さしすせそさしすせそさしすせそさしすせそさしすせそさしすせそ○○",
"たちつてとたちつてとたちつてとたちつてとたちつてとたちつてと★★",
"なにぬねのなにぬねのなにぬねのなにぬねのなにぬねのなにぬねの■■",
"はひふへほはひふへほはひふへほはひふへほはひふへほはひふへほ☆☆",
"まみむめもまみむめもまみむめもまみむめもまみむめもまみむめも○○",
"らりるれろらりるれろらりるれろらりるれろらりるれろらりるれろ★★",
"青春Bはいつだってクリエイティブに! もっとクリエイティブに!!");
var ARR_NUM:Number = STR_ARR.length - 1;//文字列数 0基点
var STR_NUM:Number = STR_ARR[ARR_NUM].length - 1;//文字数 0基点
var cnt_num:Number = 0;//シャッフル関数呼び出し回数
//文字シャッフル関数設定
intervalId= setInterval(_root, "textChange", DURATION_NUM);
function textChange():Void{
cnt_num++;//関数呼び出し回数インクリメント
var i:Number = cnt_num - ARR_NUM;//シャッフル終了とならない最小文字番号
if(i < 0)i = 0;
var j:Number = cnt_num;//表示対象の最大文字番号+1
if(cnt_num > STR_NUM)j = STR_NUM + 1;
var k:Number = 0;
var str:String = "";
//文字列生成
while(k < j){
//シャッフル終了となるかどうかで分岐
if(k < i) str += STR_ARR[ARR_NUM].charAt(k);
else str += STR_ARR[cnt_num - k - 1].charAt(k);
k++;
}
text_dt.text = str;
if(cnt_num > STR_NUM + ARR_NUM)clearInterval( intervalId );//関呼び出し終了
}