转: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 
   
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代码。
posted @ 2008-08-21 15:44  Magicam  阅读(694)  评论(0编辑  收藏  举报