Flash与.NET的通信(三):LoadVars对象的应用

  1. 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代码。
posted @ 2009-10-13 09:08  小小部落  阅读(379)  评论(0编辑  收藏  举报