前面一篇《Flash MX 2004中的XML应用之原理篇》介绍了在Flash中使用XML来实现通讯的原理。现在我们就来看看这方面的应用实例――用Flash、ASP、XML来构建一个论坛。
先来看看论坛的功能,有登陆,查看主题,查看正文,发表新主题,回复主题,删除,权限管理等等基本功能,根据需要在此基础上稍作修改,就可以实现一个功能比较完备的论坛了。下面就按顺序一个一个来实现论坛的功能,每一个介绍的内容都分为“传递的XML”、“Flash端”、“Asp端”三部分。
点击附件下载本教程的源文件及代码
一、登陆
登陆就是将用户名和密码用XML格式发送到服务器端,服务器端将验证的结果用XML格式返回。
A、传递的XML
所谓传送的XML,就是在服务器端跟Flash端之间传送的XML字符串,也就是一般意义上的通讯报文了。
1、请求报文
<LOGIN><USERNAME>用户名</USERNAME><PWD>密码</PWD></LOGIN>
2、响应报文
<LOGIN name=”用户名” right=”权限”></LOGIN>
B、Flash端
1、在Flash MX 2004中新建一个Flash文件,在场景的第一帧的ActionScript面板上增加语句:
stop();
2、在第一帧的场景中用文本工具拉两个文本框,类型都为“Input type”,变量名var分别设置为“username”、“pwd”,这是用来输入用户名跟密码的。
3、新建一个Button并拖到第一帧的场景中,摆放位置如图1所示。并在这个Button的ActionScript面板中增加如下语句:

on(release){ loginXml = new XML(); // 注释1 loginElement = loginXml.createElement("LOGIN"); // 注释2 // name node nameElement = loginXml.createElement("USERNAME"); // 注释3 nameNode = loginXml.createTextNode("name"); // 注释4 nameNode.nodeValue = _root.username; // 注释5 nameElement.appendChild(nameNode); // 注释6 // pwd node pwdElement = loginXml.createElement("PWD"); // 注释7 pwdNode = loginXml.createTextNode("pwd"); pwdNode.nodeValue = _root.pwd; pwdElement.appendChild(pwdNode); loginElement.appendChild(nameElement); // 注释8 loginElement.appendChild(pwdElement); // 注释9 loginXml.appendChild(loginElement); // 注释10
xmlRepley = new XML(); // 注释11 xmlRepley.onLoad = onLoginReply; // 注释12 function onLoginReply (sUCcess) { if (success) { // 注释13 if (xmlRepley.firstChild.firstChild.attributes.right == "1") { // 注释14 _root.gotoAndPlay("main") }else { _root.username = "登陆失败"; } } } loginXml.sendAndLoad("http://localhost/xmlbbs/login.asp", xmlRepley); // 注释15 }
注释1:新建一个XML对象,这是用来发送到服务器端的。
注释2:创建一个LOGIN结点对象。
注释3:创建一个USERNAME结点对象,注意不能直接在Element对象中放置文本内容,要在Text Node对象中才能放置文本内容。具体可以参见Flash帮助文件中有关XML.createElement()和XML.createTextNode() 中的内容。
注释4:创建一个Text Node对象,用来放置USERNAME结点的文本内容。
注释5:对Text Node结点赋值。
注释6:将创建的Text Node结点插入到USERNAME结点对象中。
注释7:分别创建一个PWD结点对象和Text Node,并将Text Node结点插入到PWD结点对象中。
注释8:将USERNAME结点对象插入到LOGIN结点对象中。
注释9:将PWD结点对象插入到LOGIN结点对象中。
注释10:将LOGIN结点对象插入到所创建的XML对象中,从而构造一个完整的XML对象。注意这里在构建XML对象时,是从最里面开始构建的。
注释11:新建一个XML对象,这里是用来放置接收到的XML对象的。
注释12:设置接收XML对象的响应函数,当服务器端返回XML对象的时候触发。
注释13:success是标示XML对象是否从服务器返回的标示位。
注释14:判断返回的XML对象中的结点属性是否符合要求。
注释15:利用sendAndLoad()函数,将Flash端的XML对象发送到服务器端,并接收从服务器端返回的XML对象。
C、Asp端
新建一个Asp文件,命名为login.asp,输入如下的内容:
上一篇:Cool!Flash制作炫丽的图片特效
下一篇:Flash制作马赛克效果
|