loadVariables 函数

loadVariables(url:String, target:Object, [method:String]) : Void

从外部文件(例如文本文件,或由 ColdFusion、CGI 脚本、Active Server Page (ASP)、PHP 或 Perl 脚本生成的文本)中读取数据,并设置目标影片剪辑中变量的值。此动作还可用于使用新值更新活动 SWF 文件中的变量。

指定 URL 处的文本必须是标准的 MIME 格式 application/x-www-form-urlencoded(CGI 脚本所使用的一种标准格式)。可以指定任意数量的变量。例如,下面的语句定义了多个变量:

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

如果 SWF 文件在比 Flash Player 7 更低的版本中运行,则 url 必须与发出此调用的 SWF 文件位于同一个超级域中。超级域可以通过删除某一文件的 URL 最左侧的组件而得到。例如,位于 www.someDomain.com 的 SWF 文件可以从位于 store.someDomain.com 的源中加载数据,这是因为这两个文件都在同一个名为 someDomain.com 的超级域中。

如果任何版本的 SWF 文件在 Flash Player 7 或更高版本中运行,则 url 必须与发出此调用的 SWF 文件位于完全相同的域中(请参阅《学习 Flash 中的 ActionScript 2.0》中的"F"lash Player 安全功能")。例如,位于 www.someDomain.com 的 SWF 文件只能从也位于 www.someDomain.com 的源中加载数据。如果要从其它域中加载数据,则可以在承载要访问的 SWF 文件的服务器上放置一个跨域策略文件。有关详细信息,请参阅《学习 Flash 中的 ActionScript 2.0》中的"关于允许跨域数据加载"。

如果要将变量加载到特定的级别中,请使用 loadVariablesNum() 而不是 loadVariables()

可用性:ActionScript 1.0、Flash Player 4 ― Flash Player 7 中的行为已更改。

参数

url:String ― 变量所处位置的绝对或相对 URL。如果发出此调用的 SWF 文件正在 Web 浏览器上运行,则 url 必须与 SWF 文件位于同一个域中;有关详细信息,请参阅"说明"部分。

target:Object ― 指向接收所加载变量的影片剪辑的目标路径。

method:String [可选] ― 指定用于发送变量的 HTTP 方法。该参数必须是字符串 GETPOST。如果没有要发送的变量,则省略此参数。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:Number = setInterval(checkParamsLoaded, 100);

外部文件 params.txt 包括以下文本:

var1="hello"&var2="goodbye"&done="done"

请参阅

loadVariablesNum 函数, loadMovie 函数, loadMovieNum 函数, getURL 函数, loadMovie(MovieClip.loadMovie 方法), loadVariables(MovieClip.loadVariables 方法), load(LoadVars.load 方法)