Flash与.NET的通信(三):LoadVars对象的应用
一.知识简介:(Flash MX Professional 2004帮助文档)
LoadVars 类用于在 Flash 应用程序和服务器之间传输变量。使用 LoadVars 类可以在下载时获取成功数据加载、进度指示和流数据的验证信息。LoadVars 类的工作原理非常类似于 XML 类;它使用方法 load()、send() 和 sendAndLoad() 与服务器进行通讯。LoadVars 类和 XML 类之间的主要差别在于 LoadVars 传输动作脚本的名称和值对,而不是 XML 对象中存储的 XML DOM 树。LoadVars 类与 XML 类遵循相同的安全限制。
二.主要应用对象知识:
1.LoadVars.onLoad
用法:
my_lv.onLoad = function(success) {// 此处是您的语句}
参数:
success 该参数指示加载操作是成功完成 (true) 还是以失败结束 (false)。
返回:一个布尔值。
说明:
事件处理函数;当 LoadVars.load() 或 LoadVars.sendAndLoad() 操作结束时调用。如果该操作成功,my_lv 将填充为该操作所下载的变量,而这些变量将在调用此处理函数时变为可用。此方法与 XML.onLoad() 相似。
2.LoadVars.sendAndLoad()
用法:
my_lv.sendAndLoad(url, targetObject[, method])
参数:
url 要将变量上传到的 URL。如果发布此调用的 SWF 文件运行在 Web 浏览器上,则 url 必须与 SWF 文件位于同一个域中;targetObject 接收下载变量的 LoadVars 对象。method HTTP 协议的 GET 或 POST 方法。
返回:字符串。
说明:
将 my_lv 对象中的变量发布到指定的 URL。将下载服务器响应,并将其作为变量数据进行分析,然后将结果变量放在 targetObject 对象中。变量发布的方式与 LoadVars.send() 相同。变量下载到 targetObject 中的方式与 LoadVars.load() 相同。在运行于 Flash Player 7 以前版本的播放器的 SWF 文件中,url 必须与发布此调用的 SWF 文件位于同一个超级域中。有关更多信息,请参见关于允许跨域数据加载。此方法与 XML.sendAndLoad() 相似。
代码及注释Actionscrīpt
stop();
var reVar:LoadVars = new LoadVars();//定义接收服务器的返回信息(reVar)
var sendVar:LoadVars = new LoadVars();//定义发送到服务器的信息(sendVar)
sendVar.NumA = 1;//初始化发送到服务器的变量NumA = 1
sendVar.NumB = 2;//初始化发送到服务器的变量NumB = 2
reVar.Value = 0;//初始化接收变量值Value = 0
reVar.onLoad = getServerInfo;
sendVar.sendAndLoad("您的URL",reVar,"POST");
trace("服务器处理中...");
function getServerInfo(Success:Boolean)
{
if(Success)
{
trace(reVar.Value)
}
else
{
trace("服务器处理失败!");
}
}ASP.NET C#
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["NumA"] != null && Request.Form["NumA"] != null)
{
try
{
int A = Convert.ToInt32(Request.Form["NumA"].ToString());
int B = Convert.ToInt32(Request.Form["NumB"].ToString());
int C = A + B;
Response.Write("Value=" + C.ToString());
}
catch
{
Response.Write("Value=服务器错误!");
}
}
else
{
Response.Write("Value=数据发送错误!");
}
}
注意:
您的ASP.NET页面的HTML代码删除,只留页面声明<%@ Page ... %>,不然通过Response.Write()回发给Flash的数据将包含HTML代码。
转贴
LoadVars 类用于在 Flash 应用程序和服务器之间传输变量。使用 LoadVars 类可以在下载时获取成功数据加载、进度指示和流数据的验证信息。LoadVars 类的工作原理非常类似于 XML 类;它使用方法 load()、send() 和 sendAndLoad() 与服务器进行通讯。LoadVars 类和 XML 类之间的主要差别在于 LoadVars 传输动作脚本的名称和值对,而不是 XML 对象中存储的 XML DOM 树。LoadVars 类与 XML 类遵循相同的安全限制。
二.主要应用对象知识:
1.LoadVars.onLoad
用法:
my_lv.onLoad = function(success) {// 此处是您的语句}
参数:
success 该参数指示加载操作是成功完成 (true) 还是以失败结束 (false)。
返回:一个布尔值。
说明:
事件处理函数;当 LoadVars.load() 或 LoadVars.sendAndLoad() 操作结束时调用。如果该操作成功,my_lv 将填充为该操作所下载的变量,而这些变量将在调用此处理函数时变为可用。此方法与 XML.onLoad() 相似。
2.LoadVars.sendAndLoad()
用法:
my_lv.sendAndLoad(url, targetObject[, method])
参数:
url 要将变量上传到的 URL。如果发布此调用的 SWF 文件运行在 Web 浏览器上,则 url 必须与 SWF 文件位于同一个域中;targetObject 接收下载变量的 LoadVars 对象。method HTTP 协议的 GET 或 POST 方法。
返回:字符串。
说明:
将 my_lv 对象中的变量发布到指定的 URL。将下载服务器响应,并将其作为变量数据进行分析,然后将结果变量放在 targetObject 对象中。变量发布的方式与 LoadVars.send() 相同。变量下载到 targetObject 中的方式与 LoadVars.load() 相同。在运行于 Flash Player 7 以前版本的播放器的 SWF 文件中,url 必须与发布此调用的 SWF 文件位于同一个超级域中。有关更多信息,请参见关于允许跨域数据加载。此方法与 XML.sendAndLoad() 相似。
代码及注释Actionscrīpt
stop();
var reVar:LoadVars = new LoadVars();//定义接收服务器的返回信息(reVar)
var sendVar:LoadVars = new LoadVars();//定义发送到服务器的信息(sendVar)
sendVar.NumA = 1;//初始化发送到服务器的变量NumA = 1
sendVar.NumB = 2;//初始化发送到服务器的变量NumB = 2
reVar.Value = 0;//初始化接收变量值Value = 0
reVar.onLoad = getServerInfo;
sendVar.sendAndLoad("您的URL",reVar,"POST");
trace("服务器处理中...");
function getServerInfo(Success:Boolean)
{
if(Success)
{
trace(reVar.Value)
}
else
{
trace("服务器处理失败!");
}
}ASP.NET C#
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["NumA"] != null && Request.Form["NumA"] != null)
{
try
{
int A = Convert.ToInt32(Request.Form["NumA"].ToString());
int B = Convert.ToInt32(Request.Form["NumB"].ToString());
int C = A + B;
Response.Write("Value=" + C.ToString());
}
catch
{
Response.Write("Value=服务器错误!");
}
}
else
{
Response.Write("Value=数据发送错误!");
}
}
注意:
您的ASP.NET页面的HTML代码删除,只留页面声明<%@ Page ... %>,不然通过Response.Write()回发给Flash的数据将包含HTML代码。
转贴