Flah Lite 1.1の話。
今回動的なメニューを作ろうと思い、メニューに表示する文字列を定義したテキストファイルを用意し、それを最初に読み込んでダイナミックテキスト変数に代入ってことを考えました。
で、外部テキストファイルの読み込みは loadVariables() 関数で出来るっぽいです。
コードはこんな感じです。
loadVariables("linkString.txt", _root);
テキストファイルの中身はこんな感じです。
strLink0=メニュー1の文字列&strLink1=メニュー2の文字列&strLink2=メニュー3の文字列
で、ちゃんと読めたかどうかを確認するためのコード。(Flash Lite 1.1では配列をサポートしてないので、変数名末尾に数値を加えて仮想配列とするといいらしいです。参考:配列 Array 代用)
for ( i = 0 ; i<3; i++){trace( eval("strLink" add i ) );
}
最初に読み込ませたいためこれらのコードを _root のムービークリップの1フレーム目に書いて動かしてみたんですが、全然読み込まれている気配がありません。
で、いろいろ調べてるとほとんどの機種の携帯ではキーイベントが無いと loadVariables() が走らないようにしてるようです。
これは、swf再生しただけでユーザーが自動的に携帯情報などを取得されないようするための仕様のようですが、非常にうっとしいです。
今回は初期表示のメニュー内容を動的に変えたいのに、ユーザーのキー操作が無いとダメだったら意味ないですね。
ということで、結局swf内部にテキスト埋め込むことしかできないという結論に至りました。
(auのトップページとか Flash Lite でニュースのヘッドライン表示してるんですが、どうやって動的に変えてるんでしょうね。。。非常に疑問です。)
参考:
Adobe Flash Liteリファレンス: loadVariables():
TUNK(タンク):【FlashLite1.1】Flash Lite 1.1における外部データ読み込み
FLASHで遊ぼう!: Lite1.1:3.外部のテキストファイルを読み込む: