转:Flash与.NET的通信(二):XML对象的应用
2008-08-21 15:42
387 查看
简介:
本次测试主要使用Actionscrīpt的XML对象,Flash客户端发送XML(<SendInfo><Value>abc</Value></SendInfo>)给服务器(ASP.NET),服务器将获得<Value>的字符值转化成大写并以XML格式(<ReplayInfo Value='值'/>)回发给Flash客户端。
主要知识点:
详细内容见Flash MX Professional 2004帮助文档
1.XML.sendAndLoad(url, targetXMLobject
将指定的 XML 对象编码为 XML 文档,并使用 POST 方法将其发送到指定的 URL,下载服务器的响应,然后将其加载到参数中指定的 targetXMLobject 中。服务器响应的加载方式与 load() 方法使用的方式相同。
2.XML.onLoad()
接收到来自服务器的 XML 文档时由 Flash Player 调用。如果成功地收到了 XML 文档,则 success 参数为 true。如果未收到该文档,或在接收来自服务器响应时出现错误,则 success 参数为 false。
代码及说明:
Actionscrīpt:stop();
var strXml = "<SendInfo><Value>abc</Value></SendInfo>";
var sendXml:XML = new XML();//定义发送到服务器的XML对象
sendXml.ignoreWhite = true;//true时忽略空白
sendXml.parseXML(strXml);//将XML字符串解释为对象
var reXml:XML = new XML();//定义接收服务器返回信息的XML对象
reXml.ignoreWhite = true;
reXml.onLoad = getReplayInfo;//定义对load和sendAndLoad方法载入数据完成时调用“getReplayInfo”函数
sendXml.sendAndLoad("你的URL",reXml);
trace("服务器处理中...");
function getReplayInfo()
{
var getXml:XML = new XML();
getXml.ignoreWhite = true;
getXml.parseXML(this);
if(getXml.firstChild.nodeName == "ReplayInfo")
{
trace(getXml.firstChild.attributes.Value);
}
else
{
trace("服务器错误!");
}
}
ASP.NET
protected void Page_Load(object sender, EventArgs e)
{
Stream xmlStream = Request.InputStream;
DataSet DS = new DataSet();
DS.ReadXml(xmlStream);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(DS.GetXml());
string Value = xmlDoc.SelectSingleNode("SendInfo").ChildNodes[0].InnerText;//节点<Value>的值
Value = Value.ToUpper();//将值转化成大写
Response.Write("<ReplayInfo Value='" + Value+ "'/>");
//回发给客户端Flash
}
注:应在ASP.NET的HTML中的页面声明中加入如下信息(红色标注)才能保证页面正确接收XML数据流
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeFile="XMLTest.aspx.cs" Inherits="XML_XMLTest" %>测试结果:服务器处理中...
ABC
本次测试主要使用Actionscrīpt的XML对象,Flash客户端发送XML(<SendInfo><Value>abc</Value></SendInfo>)给服务器(ASP.NET),服务器将获得<Value>的字符值转化成大写并以XML格式(<ReplayInfo Value='值'/>)回发给Flash客户端。
主要知识点:
详细内容见Flash MX Professional 2004帮助文档
1.XML.sendAndLoad(url, targetXMLobject
将指定的 XML 对象编码为 XML 文档,并使用 POST 方法将其发送到指定的 URL,下载服务器的响应,然后将其加载到参数中指定的 targetXMLobject 中。服务器响应的加载方式与 load() 方法使用的方式相同。
2.XML.onLoad()
接收到来自服务器的 XML 文档时由 Flash Player 调用。如果成功地收到了 XML 文档,则 success 参数为 true。如果未收到该文档,或在接收来自服务器响应时出现错误,则 success 参数为 false。
代码及说明:
Actionscrīpt:stop();
var strXml = "<SendInfo><Value>abc</Value></SendInfo>";
var sendXml:XML = new XML();//定义发送到服务器的XML对象
sendXml.ignoreWhite = true;//true时忽略空白
sendXml.parseXML(strXml);//将XML字符串解释为对象
var reXml:XML = new XML();//定义接收服务器返回信息的XML对象
reXml.ignoreWhite = true;
reXml.onLoad = getReplayInfo;//定义对load和sendAndLoad方法载入数据完成时调用“getReplayInfo”函数
sendXml.sendAndLoad("你的URL",reXml);
trace("服务器处理中...");
function getReplayInfo()
{
var getXml:XML = new XML();
getXml.ignoreWhite = true;
getXml.parseXML(this);
if(getXml.firstChild.nodeName == "ReplayInfo")
{
trace(getXml.firstChild.attributes.Value);
}
else
{
trace("服务器错误!");
}
}
ASP.NET
protected void Page_Load(object sender, EventArgs e)
{
Stream xmlStream = Request.InputStream;
DataSet DS = new DataSet();
DS.ReadXml(xmlStream);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(DS.GetXml());
string Value = xmlDoc.SelectSingleNode("SendInfo").ChildNodes[0].InnerText;//节点<Value>的值
Value = Value.ToUpper();//将值转化成大写
Response.Write("<ReplayInfo Value='" + Value+ "'/>");
//回发给客户端Flash
}
注:应在ASP.NET的HTML中的页面声明中加入如下信息(红色标注)才能保证页面正确接收XML数据流
<%@ Page Language="C#" ValidateRequest="false" AutoEventWireup="true" CodeFile="XMLTest.aspx.cs" Inherits="XML_XMLTest" %>测试结果:服务器处理中...
ABC
相关文章推荐
- Flash与.NET的通信(二):XML对象的应用
- Flash与.NET的通信(三):LoadVars对象的应用
- 转:Flash与.NET的通信(一):XMLConnector的应用
- 转:Flash与.NET的通信(三):LoadVars对象的应用
- Flash与.NET的通信(一):XMLConnector的应用
- 利用flash与.net下socket通信实现WEB页面的“推”(二)Flash和服务器间的通信核心:XMLSocket对象
- Flash与.NET的通信(三):LoadVars对象的应用
- 利用flash与.net下socket通信实现WEB页面的“推”(二)Flash和服务器间的通信核心:XMLSocket对象
- Flash使用xmlsocket与.net服务端异步通信
- 介绍Flash remoting之.net方面的应用
- .NET对象的XML序列化和反序列化
- 利用.NET中的 OleDb对象,将数据库中全部表转换成XML文件
- .NET 和Java 对象 XML序列化 库WOX
- xml序列化及反序列化.net对象
- Microsoft Office XP 和 .NET Web 服务的应用---启用 XML 服务的 Office 文档(*****)
- .NET对象的XML序列化和反序列化
- Flex与.NET互操作(十二):FluorineFx.Net的及时通信应用(Remote Shared Objects)(三)
- .Net反射技术应用解决对象不同版本方法不同参数的问题
- Xml 转换对象以及对象转换xml应用XStream
- Flash使用xmlsocket与.net服务端异步通信