MovieClip オブジェクトの loadVariables メソッドを使って外部ファイルを読み込むことができる。
基本、ローカルにあるファイルも読めるし、Web 上のファイルも読み込める。
僕は初め、loadVariables メソッドはファイルの中身をそのまま返すメソッドだと思ってた。
例えばあるテキストファイル(test.txt)があって、それに「test」って書かれていた場合、以下のようにすればファイルの内容が変数にそのまま渡されるんだと思ってた。

a = this.loadVariables("test.txt");

でも実際は全然そんな動きではないみたい。

読み込まれるテキストファイルには例えば以下のように書かれている必要がある。

a=test

このファイルを loadVariables によって読み込むことで、変数「test」という文字列をその値として保持した a という変数にプログラムからアクセスできるようになる。
変数の値は文字列としてセットされる。
複数の変数を定義したい場合は「&」で連結すればいいみたい。
例えば以下のような感じ。

a=test&b=TEST

注意しないといけないのが、loadVariables メソッドを呼んでもすぐにその内容がコンテキストに反映されるわけではないということ。
なので以下のようにプログラムを書いても期待通りに動作しない(場合によってはうまくいくときもあるのかな?)。

this.loadVariables("test.txt");
// 出力
trace(a);

「test」と出力されてほしいんだけど「undefined」とか出る。
a なんていう変数は定義されていないと。

じゃあどうしたらいいのかというと、ファイルのロードが完了するまで待ってあげないといけない。
以下のページにそのへんのテクニックが載ってるみたいなので読んでみた。

[228616]外部テキストファイルを読込む

フレームを3つ作ってループさせて、変数が定義されていたらループを終了させるのか。
うーん、なんか面倒くさいな。

ていうか、Flash の開発って、時間軸をすごく意識する必要があるんだな。
「フレーム」がキモか。

追記:
外部ファイルを読み込む方法についてちゃんと調べた。
上の「フレームを3つ作ってループ…」云々のような方法をとらなくてもいける。
LoadVars というクラスを使うと良いみたい。
手順は以下。

1. まず、new LoadVars() でインスタンスを作成
2. onLoad イベントハンドラにデータのロードが完了した時の処理を記述する
3. load メソッドを呼ぶ

ソースは以下。

var my_lv:LoadVars = new LoadVars();
my_lv.onLoad = function(success:Boolean) {
    if (success) {
        trace(this.a);
    }
};
my_lv.load("test.txt");

(^o^)/

でも後続のフレームの処理がからんでくる場合はやっぱりフレームでループさせたりしないとだめかも。
データがロードされるまでは特定のフレーム以降が再生されないようにしたい場合とか。
やっぱ Flash のプログラミングって特殊だな。