読み込んだ外部テキストを順番に表示する 

読み込んだ外部テキストを順番に表示する方法は以下の2通り。
(他にもあると思うけど、とりあえず思いつくもの)


■splitで分割して、配列に入れる



//読み込んだ文字列を”,”で分割し、ファイル名のテーブルを作る
str = new String( txt_list );
txt_tbl = str.split( "," );
//全テキストの読み込み
txt_max = txt_tbl.length;
for( i = 0 ; i < txt_max ; i++ ){
_root.txt = txt_tbl[ i ];
}

外部テキストはこんなカンジ

txt_list=テキスト1,テキスト2,テキスト3,テキスト4

Scriptは分かりやすいけど、外部テキストが見にくい。
だからテキストを変更する時に面倒。




■文字毎に改行する



var j = 0;
// 文字列の数を求める
while (this["txt_"+(++j)] != undefined);
txt_max = j;

//テキストを順番に代入
for( i = 0 ; i < txt_max ; i++ ){
_root.txt = this[ "txt_" + i ];
}

外部テキストはこんなカンジ

&txt_0=ああああああ&
&txt_1=い&
&txt_2=ううう&
&txt_3=ええ&

外部テキストが見やすいので、担当者以外でも変更しやすい。

最近てこずったActionScript 

最近ちまちまとFlashを制作している。ムービーはすんなり作れているのに、変なところで時間がかかってしまう。単体ではちゃんと動いていて、外部読み込みにしても動作しているのに、HTMLから読み込んでみると変な動作をしちゃったり…。
スクリプトの間違いならすぐ気づけるけど、あれこれ悩んだ末にFlashのバグだったりすると、やりきれない思いにもなる。

■ループ
以下のActionScriptは普通はうまくいくが、
外部テキスト読み込みとかだとうまくいかない。


flag = false;
stop();
function wait() {
// ムービークリップが信号を返せば次へ
// そうでなければ待機
if( flag ){
clearInterval(nID); // リセット
play();
}
}
nID = setInterval(wait, 10); // タイマー


外部テキスト読み込みとかの場合は
以下のようにしたほうがいいみたい。


//外部テキストの読み込み完了を待つ
if( load == undefined ){
// まだなら1つ前の空白フレームに戻る
// (またここに戻ってくる)
gotoAndPlay( _currentframe - 1 );
}
else {
//読み込みが終われば次のフレーム
gotoAndPlay( _currentframe + 1 );
}



さらに、これでもうまく動作しなかったので
最終的に

gotoAndPlay( _currentframe - 1 );

の部分を、

gotoAndPlay( "hitotumae" );

と、フレーム名を指定してやるとうまく動作した。

■ダイナミックテキストのマスク
どうやらダイナミックテキストはマスクできないらしい。
ネットで検索してみると、デバイスフォントがどうのとか出てきたが
フォントを指定してもマスクできなかった。
埋め込みにしたらマスクできたが、メチャメチャ重くなったので
結局、他のムービーで隠してマスクっぽくしただけにした。
誰か解決方法を知っていたら教えて〜