loadVariablesでサーバからデータをムービークリップに取得



[loadVariables][サーバ通信][ムービークリップ][Flash Lite2.0]

読み込めるファイルは,swfを設置するサーバと同一ドメインであること。
(ドメイン間のデータロードもできるようだが,未調査)

・ムービークリップを用意して,インスタンス名はtext2_mc

loadVariablesについて
・ムービーのレベルで変数に読み込むことができる
・ムービーには読み込みレベルがあり,0が最小値。最大値は無い。_level0(レベル0)は,読み込むミービー自体のレベル。

Adobeサイトより引用(一部改変):
テキストファイルや、CGI スクリプト、ASP、PHPなどで作成されたテキストなどの外部ファイルからデータを読み取り、ターゲットムービークリップの変数に値を設定します。このアクションを使用して、現在の SWF ファイルの変数を新しい値で更新することもできます。

指定された URL にあるテキストは、標準の MIME 形式 application/x-www-form-urlencoded (CGI スクリプトで使用される標準形式) である必要があります。変数はいくつでも指定できます。たとえば、次の例では複数の変数が定義されています。

company=Macromedia&address=601+Townsend&city=San+Francisco&zip=94103




//読み込むファイルのURLとファイル名を記述
//読み込むファイルは,_root.text1_mc に設定

loadVariables("http://・・・・/testfile.txt", "_root.text2_mc");

//Adobeのサンプル引用
//loadVariablesも読み込み完了を待たないので,
//読み込み完了を検知するfunctionを用意

function checkParamsLoaded() {

//level0に読み込んだ最後の変数がセットされているかどうか
if ( _root.text2_mc.done == undefined) {

//もし最後の変数が未定義なら,読み込みが完了していない
trace("not yet.");
}

//最後の変数が読み込まれたら
else
{
trace("finished loading. killing interval.");
trace("-------------");

//レベル0に保持した変数をtraceするループ
//i は変数名

for ( i in _root.text2_mc )
{
trace( i + ": "+ _root.text2_mc[i] );
}
trace("-+-+-+-+-+-+-------");
//読み込み完了したので,インターバルはクリアする
clearInterval( param_interval );
}
}

//100ミリ秒ごとに,checkParamsLoadedを呼び出す
var param_interval = setInterval( checkParamsLoaded, 100);

//
//サーバに置くファイル名 testfile.txt
//中身は, var1="hello"&var2="goodbye"&text1="HELLO LITE"&done="done"





■参照
setInterval 関数
loadVariables 関数