ǰλãҳ > > ƽ涯 > Flash > FLASH+ASP制造调查结果

FLASH+ASP制造调查结果

26  ڣ2008-11-21 23:29:39 ߣԴ
ԴƼ

FLASH+ASP打造调查结果(图一)

对于FLASH来生成饼形我们已经不是很陌生,我们就用它来显示投票结果,一般我调查结果我们都是用图片或者颜色块来表示各项的结果了.

  这里就不讨论FLASH如何实现饼形的结果了,我们要作的就是把调查结果用FLASH+ASP按上面的形式实现出来.

  首先用ASP把调查结果写成XML文件.

Response.charset="gb2312"
Response.ContentType="text/xml"

  在ASP文件的头部使用上面的语句可以将结果显示成XML文件格式.

  下面我们定义一下XML文件的格式:

  <pieData QUESTION="你觉得站点如何?">
  <pie color="FF0000">
  <value>14</value>
  <text>颜色不好</text>
  </pie>
  <pie color="00FF00">
  <value>37</value>
  <text>没有内容</text>
  </pie>
  <pie color="0000FF">
  <value>19</value>
  <text>更新太慢</text>
  </pie>
  <pie color="FFFF00">
  <value>7</value>
  <text>没有交互性</text>
  </pie>
  <pie color="FF00FF">
  <value>14</value>
  <text>都不喜欢</text>
  </pie>
  </pieData>

其中:QUESTION=调查的标题
   color=颜色
   value=投票数
   text=投票选项

下面是我生面XML所用的ASP文件,各位可以参考一下:

文件名:xmlpoll.asp 把此次投票内容列出来,显示成XML文件.

代码拷贝框
<!--#include file="../admin/config.asp"-->
<!-- #include file="colors.asp" -->
<%
Response.expires=0
Response.charset="gb2312"
Response.ContentType="text/xml"

"请不要修改此代码
dim lngPollID

lngPollID=Request("PollID")

"如果没有取得数据 就取第一个投票
if (not isnumeric(lngPollid)) or lngPollid="" then
 SQL = "select top 1 id from " & strDbTable & "title order by id desc"
 set rs1=conn.execute(SQL)
 lngPollid=rs1("id")
 rs1.close
 set rs1=nothing
end if

"取得调查名和总的投票数
dim rs
dim strTitle ,lngVoter
SQL = "SELECT * FROM " & strDbTable & "title WHERE id = " & int(lngPollid)
Set rs=conn.execute(SQL)

strTitle=rs("title")
lngVoter=rs("votes")
"防止除零
if lngVoter=0 then
 lngVoter=1
end if

"取得调查的投票列表
SQL = "SELECT * FROM " & strDbTable & "vote WHERE poll_id=" & int(lngPollid) & " order by answer_id asc"
set rs=conn.execute(SQL)

"代码替换功能 防止一些不必要的符号
function ReplaceChr(Content)
 "Content=Replace(Content,"源字符","目标字符")
 Content=Replace(Content,"%","%25")
 Content=Replace(Content,"&","%26")
 Content=Replace(Content,"+","%2b")
 Content=Replace(Content,chr(13),"%0d")
 ReplaceChr=Content
end function

i=1
StrXML="<pieData QUESTION="""&strTitle&""">"
do until rs.eof
StrXML=StrXML&"<pie color="&color(i)&">"
StrXML=StrXML&"<value>"&rs("no_votes")+1&"</value>"
StrXML=StrXML&"<text>"&ReplaceChr(rs("answer"))&"</text>"
StrXML=StrXML&"</pie>"
i = i+1
rs.MoveNext
Loop
strXML=strXML &"</pieData>"
set i=nothing

rs.close
set rs=nothing
conn.close
set conn=nothing
response.Write(strXML)
%>

[Ctrl+A 全部选择 然后拷贝]

FLASH显示面页:
graph.asp 显示FLASH

代码拷贝框
<% Language=VBScript%>
<html>
 <head>
  <title>
  投票结果
  </title>
 </head>
<body LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<%
Dim Weeknum,PollID

PollID=Request.Querystring("PollID")

Dim Dtrdatasrc

Dtrdatasrc="http://edu.cnzz.cn/NewsInfo/xmlpoll.asp?PollID="&PollID

Dtrdatasrc=flshpollencURL(Dtrdatasrc)
%> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="550" height="220" align="middle">
<param name=movie value="http://edu.cnzz.cn/NewsInfo/flashpoll.swf?dataurl=<%=Dtrdatasrc%>"> <param name=quality value=high>
<embed src="http://edu.cnzz.cn/NewsInfo/flashpoll.swf?dataurl=<%=Dtrdatasrc%>" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="220" align="middle" bgcolor=#99ccff>
</embed> </object>
</body>
</html>
<%
Function flshpollencURL(strURL)
 strURL=replace(strURL,"?","&")
 strURL=replace(strURL,"&","*")
 flshpollencURL=strURL
End Function
%>

[Ctrl+A 全部选择 然后拷贝]

上面就是实现FLASH投票的核心文件了.

下面是我们所要用到的FLASH文件和调用的XML文件格式:

文件名:pieData.xml 按右键保存

代码拷贝,请用pieData.xml命名.
<?xml version="1.0"?>
  <pieData QUESTION="你觉得站点如何?">
  <pie color="FF0000">
  <value>14</value>
  <text>颜色不好</text>
  </pie>
  <pie color="00FF00">
  <value>37</value>
  <text>没有内容</text>
  </pie>
  <pie color="0000FF">
  <value>19</value>
  <text>更新太慢</text>
  </pie>
  <pie color="FFFF00">
  <value>7</value>
  <text>没有交互性</text>
  </pie>
  <pie color="FF00FF">
  <value>14</value>
  <text>都不喜欢</text>
  </pie>
  </pieData>
[Ctrl+A 全部选择 然后拷贝]

FLASH文件:

flashpoll.swf

Դ.
(0)
Ա
վƼ
֮