Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript リファレンスガイド > ActionScript 言語エレメント > グローバル関数 > loadVariables 関数 | |||
loadVariables(url: String, target: Object [, method: String]) : Void
テキストファイルや、ColdFusion、CGI スクリプト、ASP (Active Server Pages)、パーソナルホームページ (PHP)、または Perl スクリプトで作成されたテキストなどの外部ファイルからデータを読み取り、ターゲットムービークリップの変数に値を設定します。このアクションを使用して、現在の SWF ファイルの変数を新しい値で更新することもできます。
指定された URL にあるテキストは、標準の MIME 形式 application/x-www-form-urlencoded (CGI スクリプトで使用される標準形式) である必要があります。変数はいくつでも指定できます。たとえば、次の例では複数の変数が定義されています。
company=Macromedia&address=600+Townsend&city=San+Francisco&zip=94103
Flash Player 7 より前のバージョンの Player で SWF ファイルを実行している場合、url は、呼び出し元の SWF ファイルと同じスーパードメインに属している必要があります。スーパードメインは、ファイルの URL の左端の要素を削除することで求められます。たとえば、www.someDomain.com に存在する SWF ファイルは、store.someDomain.com のデータソースからデータをロードできます。どちらのファイルも同じスーパードメイン someDomain.com に属しているからです。
Flash Player 7 以降で動作する SWF ファイルでは、url に、この呼び出しを発行する SWF ファイルと完全に同じドメインを使用する必要があります (『ActionScript ユーザーガイド』の「Flash Player のセキュリティ機能」を参照)。たとえば、www.someDomain.com に存在する SWF ファイルは、www.someDomain.com に存在するソースからしかデータをロードできません。異なるドメインからデータをロードする場合は、アクセスされるソースファイルをホスティングするサーバーに "クロスドメインポリシーファイル" を置いておく必要があります。詳細については、『ActionScript ユーザーガイド』の「ドメイン間のデータロード許可について」を参照してください。
変数を特定のレベルにロードするには、loadVariables() の代わりに loadVariablesNum() を使用します。
使用できるバージョン : ActionScript 1.0、Flash Lite 1.1 - Flash Player 7 では動作が変更されました。
url: String - 変数が存在する絶対 URL または相対 URL。呼び出し元の SWF ファイルが Web ブラウザで実行されている場合、url は SWF ファイルと同じドメインに属している必要があります。詳細については、「説明」を参照してください。
target: Object - ロードした変数を受け取るムービークリップへのターゲットパス。
method: String (オプション) - 変数を送信するための HTTP メソッドを指定します。パラメータはストリング GET または POST でなければなりません。送る変数がない場合は、このパラメータを省略します。GET メソッドは、変数を URL の最後に追加します。このメソッドは、変数のデータ量が少ないときに使用します。POST メソッドは、別の HTTP ヘッダーで変数を送信します。このメソッドは、変数のデータ量が多いときに使用します。
次の例では、テキストファイル "params.txt" の情報を、createEmptyMovieClip() を使用して作成されたムービークリップ target_mc にロードします。setInterval() 関数は、ロードの進捗状況をチェックする場合に使用します。このスクリプトは、"params.txt" ファイル内の done という名前の変数をチェックします。
this.createEmptyMovieClip("target_mc", this.getNextHighestDepth());
loadVariables("params.txt", target_mc);
function checkParamsLoaded() {
if (target_mc.done == undefined) {
trace("not yet.");
} else {
trace("finished loading. killing interval.");
trace("-------------");
for (i in target_mc) {
trace(i+": "+target_mc[i]);
}
trace("-------------");
clearInterval(param_interval);
}
}
var param_interval = setInterval(checkParamsLoaded, 100);
外部ファイル "params.txt" には、次のテキストが含まれています。
var1="hello"&var2="goodbye"&done="done"
loadVariablesNum 関数, loadMovie 関数, loadMovieNum 関数, getURL 関数, loadMovie (MovieClip.loadMovie メソッド), loadVariables (MovieClip.loadVariables メソッド), load (LoadVars.load メソッド)