sendAndLoad(LoadVars.sendAndLoad 方法)
public sendAndLoad(url:String, target:Object, [method:String]) : Boolean
将 my_lv 对象中的变量发送到指定的 URL。下载服务器响应,并将其作为变量数据进行分析,然后将结果变量放在 target 对象中。
变量发送的方式与 LoadVars.send() 相同。变量下载到 target 中的方式与 LoadVars.load() 相同。
使用此方法时,请考虑 Flash Player 安全模型:
对于 Flash Player 8:
- 如果执行调用的 SWF 文件在只能与本地文件系统内容交互的沙箱中,而目标资源来自网络沙箱,则不允许进行数据加载。
- 如果执行调用的 SWF 文件来自网络沙箱而目标资源在本地,也不允许进行数据加载。
有关详细信息,请参阅以下部分:
- 《学习 Flash 中的 ActionScript 2.0》中的"了解安全性"
- Flash Player 9 安全性白皮书(位于 http://www.adobe.com/go/fp9_0_security_cn)
- Flash Player 8 与安全相关的 API 白皮书(位于 http://www.adobe.com/go/fp8_security_apis_cn)
对于 Flash Player 7 及更高版本:
- 网站可通过跨域策略文件允许对资源进行跨域访问。
- 在 Flash Player 7 及更高版本中运行的任何版本 SWF 文件中,url 必须位于完全相同的域中。例如,位于 www.someDomain.com 的 SWF 文件只能从也位于 www.someDomain.com 的源中加载数据。
如果 SWF 文件在低于 Flash Player 7 版本的播放器中运行,则 url 必须与发出此调用的 SWF 文件位于同一个超级域中。超级域可以通过删除某一文件的 URL 最左侧的组件而得到。例如,位于 www.someDomain.com 的 SWF 文件可以从位于 store.someDomain.com 的源中加载数据,这是因为这两个文件都在同一个名为 someDomain.com 的超级域中。
此方法与 XML.sendAndLoad() 相似。
可用性:ActionScript 1.0、Flash Player 6 ― Flash Player 7 中的行为已更改。
url:String ― 一个字符串;上载变量的目标 URL。如果发出此调用的 SWF 文件正在 Web 浏览器中运行,则 url 必须与 SWF 文件位于同一个域中。
target:Object ― 接收已下载变量的 LoadVars 或 XML 对象。
method:String [可选] ― 一个字符串;HTTP 协议的 GET 或 POST 方法。默认值是 POST。
Boolean ― 一个布尔值。
对于下面的示例,在舞台上添加名为 name_ti 的 TextInput 实例、名为 result_ta 的 TextArea 实例和名为 submit_button 的 Button 实例。当用户单击下面示例中的 Login 按钮实例时,将创建两个 LoadVars 对象:send_lv 和 result_lv。send_lv 对象从 name_ti 实例复制名称并将数据发送到 greeting.cfm。此脚本的结果将载入 result_lv 对象,服务器响应则显示在 TextArea 实例 (result_ta) 中。将下面的 ActionScript 添加到时间轴中的第 1 帧:
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean) {
if (success) {
result_ta.text = result_lv.welcomeMessage;
} else {
result_ta.text = "Error connecting to server.";
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.name = name_ti.text;
send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);
有关其它示例,请参阅位于 www.adobe.com/go/learn_fl_samples_cn 的 Flash 示例页。下载并解压缩示例 zip 文件,然后进入 ActionScript2.0\Login 文件夹以访问 login.fla 文件。