开发Flash留言本一直都是Flash后台交互的进阶技术,本例通过ASP和XML简单高速地同数据库交互。
本例思路:
<1> 创建数据库。
<2> 编写ASP程序。
<3> 在Flash中制作留言本皮肤。
<4> 编写AS与ASP程序交互。
实例步骤:
(1)先安装IIS服务器,安装方法请查阅相关资料。
(2)交互流程:
显示:使用ASP读取数据库数据再输出成XML,Flash再去读取这个XML文件。
留言:Flash将用户输入留言内容发送给ASP,ASP接收到数据后再存入数据库。
交互流程如图所示。
图14-1 流程图
(3)本范例使用到的三个ASP文件为:
“head/conn.asp”打开数据库。
“listXML.asp”读取ACCESS数据库里的数据并转化为XML格式显示出来。
“post.asp”接收Flash里的值存入数据库。
(4)先创建数据库名为“db.mdb”,新建一个表名为“book”,各字段与作用如图14- 2所示.
图14-2 新建表
(5)先编写打到数据库的conn.asp文件。
ASP/Visual Basic代码
<% Db = "head/db.mdb" conn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db) %> |
(6)编写显示留言列表的ASP文件listXML.asp,先打开表“book”。
ASP/Visual Basic代码
<%@LANGUAGE="VBSCRIPT" %> <!--#include file="head/conn.asp" --> <% set rs = Server.CreateObject("ADODB.Recordset") rs.ActiveConnection = conn rs.Source = "SELECT * FROM book ORDER BY id DESC" rs.CursorType = 0 rs.CursorLocation = 3 rs.LockType = 1 rs.Open() %> |
(7)在Flash中读取数据库数据时,还要考虑分页的问题,我们每次默认读取10条数据可以在调用时设置显示条数,使用变量“itemNum”。并判断当前显示的页码,使用变量“pageNum”。
ASP/Visual Basic代码
<% Dim itemNum,pageNum,recordTotal itemNum = Request.QueryString("itemNum") If itemNum <> "" Then itemNum = Int(itemNum) else itemNum =10 end if recordTotal = rs.RecordCount pageNum = Request.QueryString("pageNum") If pageNum <> "" Then pageNum = Int(pageNum) rs.move(pageNum*itemNum) end if %> |
(8)将数据打印成XML文件现显出来。
ASP/Visual Basic代码
<?xml version='1.0' encoding='gb2312'?> <XML total='<%=(recordTotal)%>'> <% While ((itemNum <> 0) AND (NOT rs.EOF)) %> <% id=rs("id") myname=Trim(rs("name")) mytitle=Trim(rs("title")) msg=Trim(rs("msg")) qq=Trim(rs("qq")) redate=Trim(rs("date")) %> <item id="<%=id%>" name="<%=myname%>" title="<%=mytitle%>" msg="<%=msg%>" qq="<%=qq%>" date="<%=redate%>"/> <% itemNum=itemNum-1 if NOT rs.EOF then rs.MoveNext() end if Wend %> </XML> |
技术看板:代码解释
第27行,标识XML版本与语言类型。
第28行,使用属性total记录数据库所有数据。
第40行,输出XML元素,每条记录着一条用户留言。