loadVariablesNum 函数
loadVariablesNum(url:String, level:Number, [method:String]) : Void
从外部文件(例如文本文件,或由 ColdFusion、CGI 脚本、ASP、PHP 或 Perl 脚本生成的文本)中读取数据,并设置 Flash Player 的某个级别中的变量的值。此函数还可用于使用新值更新活动 SWF 文件中的变量。
指定的 URL 处的文本必须为标准的 MIME 格式 application/x-www-form-urlencoded(CGI 脚本所使用的一种标准格式)。可以指定任意数量的变量。例如,下面的语句定义了多个变量:
company=Adobe&address=601+Townsend&city=San+Francisco&zip=94103
在比 Flash Player 7 更早版本的播放器中运行的 SWF 文件中,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 文件的服务器上放置一个跨域策略文件。有关详细信息,请参阅“关于允许跨域数据加载”。
如果要将变量加载到目标影片剪辑中,请使用 loadVariables()
而不是 loadVariablesNum()
。
可用性:ActionScript 1.0、Flash Player 4 ― Flash 7 中的行为已更改。将 Flash 5 或更高版本中打开的 Flash 4 文件转换为使用正确的语法。
参数
url
:
String ― 变量所处位置的绝对或相对 URL。如果发出此调用的 SWF 文件正在 Web 浏览器上运行,则 url 必须与 SWF 文件位于同一个域中;有关详细信息,请参阅“说明”部分。
level
:
Number ― 一个整数,指定 Flash Player 中接收这些变量的级别。
method
:
String [可选] ― 指定用于发送变量的 HTTP 方法。 该参数必须是字符串 GET
或 POST
。如果没有要发送的变量,则省略此参数。GET
方法将变量附加到 URL 的末尾,它用于发送少量的变量。POST
方法在单独的 HTTP 标头中发送变量,它用于发送长字符串的变量。
示例
下面的示例将名为 params.txt 的文本文件中的信息加载到 Flash Player 中级别 2 处的 SWF 的主时间轴中。文本字段的变量名必须与 params.txt 文件中的变量名匹配。setInterval()
函数用于检查向 SWF 中加载数据的进度。该脚本检查 params.txt 文件中是否存在名为 done
的变量。
loadVariablesNum("params.txt", 2);
function checkParamsLoaded() {
if (_level2.done == undefined) {
trace("not yet.");
} else {
trace("finished loading. killing interval.");
trace("-------------");
for (i in _level2) {
trace(i+": "+_level2[i]);
}
trace("-------------");
clearInterval(param_interval);
}
}
var param_interval:Number = setInterval(checkParamsLoaded, 100);
// Params.txt includes the following text
var1="hello"&var2="goodbye"&d
[此贴子已经被作者于2010-8-9 16:00:31编辑过]