| 
 
 | Flash+ASP联合打造投票程序 
   为了调查了解站点访问者对特定问题的立场,我们可以在站点中设置投票程序,站点访问者直接选择答案,程序自动对所有答案进行统计和显示.
 下面是一个简朴的flash版的投票程序,后台使用 xml+ asp+ mysql: 因为大多web工作者对asp比较认识,xml可以将复杂的问题简化,采用mysql的原因是access 我没有安装,程序不需要任何存储过程,所以无需动SQL Server ,Oracle 等重兵器.
   点击这里附件下载源文件 (53k)
 问题分析:本投票程序是选择题, 故我们用一个字段存储用户的答案即可.
   建立数据库和表:表名称和数据库名称任意,字段定义如下:
 voteid  无符号整数 自动编号
 result   短整数 存储用户选择 本程序范围在0-2
 userip char (25)  用户ip地址实际长度21
 message char(255)  附加消息 //这个程序未用
   使用mysql-front创建,如下图所示:
 
 设计flash用户界面: 从window/components/flash ui components 中 拖三个 RadioButton到舞台中,
 设置标签,其他为默认值。(从属性面板和组件参数面板均可以设置)
 
 
 这里将使用一个图表组件(HTML UI Components中的Subtype),你可以到MM扩充资源 www.macromedia.com/exchange/flash 下载.
   参数设置如下:
 
 
 flash端的程序异常简朴只有三行:
 
 //在时间轴的第一帧,加入下面的代码
 //标签名称为"开始投票吧!"的按钮,事件句柄为sendvote,在点击后执行下面的自定义函数
 function sendvote () {
 _root.mytb.readData("http://localhost/votexml.asp?selectresult="+radioGroup.getInstance());
 }
 
 服务器端程序的编写,上面你可能看到有一个votexml.asp的文件,下面我们就来建立它.
 
 代码如下:
 <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><%
 set conn=server.CreateObject("adodb.connection")
 conn.open "dsn=mysql"
 set rec=server.CreateObject("adodb.recordset")
 %>
 <% if request("selectresult")<>"" then
 userip= Request.ServerVariables("REMOTE_ADDR")
 selectresult=request.QueryString("selectresult")
 rec.open "select count(*) as count from votetable where votedate>\\'"&now()-0.125 & "\\' and userip=\\'"&userip&"\\'",conn
 if rec("count")>0 then
 bzh="重复投票无效"
 rec.close
 \\'response.Write("请不要重复投票")
 else
 rec.close
 bzh="投票有效"
 conn.execute "insert into votetable(userip,result) values(\\'"&userip&"\\',"& selectresult&")"
 end if
 else
 bzh="查看投票"
 end if
 rec.open "SELECT result,count(*) as count FROM votetable group by result ORDER BY result asc",conn
 t0=cint(rec("count"))
 rec.movenext
 t1=cint(rec("count"))
 rec.movenext
 t2=cint(rec("count"))
 tcount=t0+t1+t2
 Response.contenttype="text/xml"
 %>
 <% Response.write "<?xml version=\\'1.0\\' encoding=\\'gb2312\\'?>"
 response.Write("<root bz=\\'"&bzh&"\\'>")
 Response.write "<base><data value=\\'相信\\' color=\\'0xff00cc\\'/><data value=\\'不相信\\' color=\\'0x0000CC\\'/><data value=\\'现在还不清晰\\' color=\\'0x00cc00\\'/></base>"
 response.Write("<record value=\\'共"&tcount&"票\\' color=\\'0x0000CC\\'>")
 response.Write("<data value=\\'"&t0/tcount&"\\'/>")
 response.Write("<data value=\\'"&t1/tcount&"\\'/>")
 response.Write("<data value=\\'"&t2/tcount&"\\'/></record>")
 %>
 <%
 Response.write "</root>"
 rec.close
 set rec=nothing
 conn.close
 set conn=nothing
 %>
   将文件保存为votexml.asp,放置到web路径为"/"的目录中,即可.   备注:实际应用到web服务器的时候,请在flash中使用相对路径.flash movie和votexml.asp可以放置到任何目录中. 返回类别: Flash教程
 上一教程: 关于主动画中load动画和动态文本的共同运用问题
 下一教程: Flash Lite 与 J2ME 分析比较
 
 您可以阅读与"Flash+ASP联合打造投票程序"相关的教程:
 · FLASH读外部数据(文本|XML|ASP)
 · Flash打造万花筒效果动画
 · Flash面向对象程序设计的演变
 · Flash 8 中文版视频教程(10)联合
 · 用Flash MX迅速制作沟通留言程序
 
 |