Flash新闻效果与数据库、XML的结合

哈哈,现在讲这个效果可能有点过时了,不过看到各大门户现在还用着这样的东东,应该是可以研究一下了。
很长时间没作ASP的东西了,现在整一个跟ACCESS数据库相结合的Flash新闻图片转换效果,还真是费了点心机.还好,整出来了,真是有点愚昧啊,原来Js里面也可以写ASP代码的.[em09]

我先把代码整出来




<%
dim conn
dim connstr
on error resume next

connstr="DBQ="+server.mappath("../treeback/$cude8$#0ld$de.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>








描述一下:


<%
dim conn
dim connstr
on error resume next

connstr="DBQ="+server.mappath("../test/test.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>

这段是连接数据库的,不用多说.

<%
sql="select top 5 * from news where homehot=0 and selectpic=1 order by NewsID desc"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
if not rs.eof then
for i=1 to 5
%>

数据库查询,找出头5条,并从头到尾读取记录出来,i是个变量,为下面的自定义变量作准备


imgUrl<%=i%>="pic/<%=rs("picurl")%>";
imgtext<%=i%>="<%if len(rs("title"))>=18 then response.write left(rs("title"),18)&"…" else response.write rs("title")%>"
imgLink<%=i%>=escape("shownews.asp?newsid=<%=rs("newsid")%>");

这里相对应的都是从数据库中的表news取出的来记录,相对应于imgUrl1,imgUrl2,imgUrl3,imgtext1,imgtext2.....这样的变量,通过I动态定义变量,这是很方便的不说,不用声明一下变量,当然,你要声明也可以的.

<%
rs.movenext
next
else
response.write "没有新闻"
end if
%>

循环,承接上面,单条记录逐条读取.


var focus_width=340;
var focus_height=220;
var text_height=20;

定义Flash的长宽高,以及新闻标题所占的高度,宽340pixes,高220pixes,字体占20pixes高.


var_height = focus_height+text_height;
var pics=imgUrl1+"|"+imgUrl2+"|"+imgUrl3+"|"+imgUrl4+"|"+imgUrl5;
var links=imgLink1+"|"+imgLink2+"|"+imgLink3+"|"+imgLink4+"|"+imgLink5;
var texts=imgtext1+"|"+imgtext2+"|"+imgtext3+"|"+imgtext4+"|"+imgtext5;

将从数据库中的相关字段的值合成一个变量值,中间用"|"隔开

document.write('');

用document.write方法实现对flash的输入,中间将相关的值传至FlashVars中
这里document.write()就不用多说了,我们来看一下FlashVar是个什么东西.

Flashvar是Flash中用来接收HTML相参关数的一个参数.他的格式一般是

在IE中:



而在FireFox中:




http://www.macromedia.com/go/getflashplayer"; type="application/x-shockwave-flash"  />

有IE和FF中共用:


http://www.macromedia. com/go/getflashplayer" />



具体使用可以参考一下:

Flash的帮助手册

引用内容 引用内容

使用 FlashVars 加载并显示文本
使用 FlashVars 非常简单,但是需要将 SWF 文件随 HTML 文档一起发布。您修改了生成的 HTML 代码并在 object 和 embed 标签中包括了 FlashVars 属性。然后可以通过在 Web 浏览器中查看修改的 HTML 文档对 Flash 文档进行测试。

若要使用 FlashVars 将变量从 HTML 中传递到 Flash 文档,请执行以下操作:
创建一个新的 Flash 文档,并将其另存为 flashvars.fla。
将下面的 ActionScript 添加到时间轴中的第 1 帧:
this.createTextField("my_txt", 10, 10, 10, 100, 21);
my_txt.text = _level0.username;
保存该 Flash 文档,然后选择"文件">"发布"以生成 HTML 和 SWF 文件。 注意
  
默认情况下,HTML 文档将发布到 FLA 文件所在的同一目录中。如果未发布 HTML 文档,请选择"文件">"发布设置",然后选择"格式"选项卡。请确保选择了 HTML。


在文本或 HTML 编辑器中打开 flashvars.html 文档。
在 HTML 文档中,修改 object 标签中的代码以与下面的代码匹配。
需要添加的代码以粗体显示。

codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/
swflash.cab#version=8,0,0,0" width="550" height="400" id="flashvars"
align="middle">





bgcolor="#ffffff" width="550" height="400" name="flashvars"
align="middle" allowScriptAccess="sameDomain" type="application/x-
shockwave-flash" pluginspage="http://www.macromedia.com/go/
getflashplayer" />

保存对该 HTML 文档所做的更改。
在 web 浏览器中打开修改过的 HTML。
SWF 文件将在舞台上动态创建的文本字段中显示名称"Thomas"。




你也可以参考:

flash使用FlashVars接收html参数
http://www.dezai.cn/index/Article_Show.asp?ArticleID=14541


ASP.NET中实现Flash与.NET的紧密集成
http://www.dezai.cn/index/Article_Show.asp?ArticleID=14542


效果图我就不贴了哈,:)个人认为实现这效果的关键就是将数值读取出来并通过FlashVar读取,如果懂得FlashVar应该很容易搞掂的啦


至于Flash与XML的结合,可以通过生成XML,用Flash直接与XML结合就可以实现相同效果

下载文件 点击下载此文件(来自51flash.cn)

大家可以下载一下看一下.

上一篇: ASP.Net学习之数据绑定语法
下一篇: 努力着,一步步向前
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 87 | 查看次数: 43687
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 30 字 | UBB代码 关闭 | [img]标签 关闭