快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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 8 中文版视频教程(10)联合
· 程序员眼中的Flash MX2004(2)
· 程序员眼中的Flash MX2004(1)
· Flash:打造你自己的专业时钟
· FLASH读外部数据(文本|XML|ASP)
    微笑服务 优质保证 索取样品