收藏本站 | 站点地图 | 繁體中文
沭阳乐园
您现在的位置: 沐阳乐园 >> 文章中心 >> 网络教程 >> 动画实例 >> 正文
Flash留言板的详细教程         
Flash留言板的详细教程
作者:佚名 文章来源:ZT 点击数:1442 更新时间:2010-12-28 3:11:57

基于网页的留言板,我们已经见得很多,一个完整的留言板包括三个部分:

1.  显示留言的页面(显示朋友们给我的留言)

2.填写留言的页面 (向后台提交信息)

3.  数据库(用于保存后台信息)

关于如何制作基于网页的留言板,不去多作解释,可以参考相关资料。

就目前而言,Flash是不可以直接操作象ACCESS, SQL, Mysql 等数据库的,他只能依靠ASP ,PHP ,JSP等其他的语言来实现数据的提交和查询。同时,Flash还可以和XML对接,实现一些数据的操作。

Flash和ASP的交互:

无论是ASP,PHP还是JSP等其他语言,原理大都一样,本人对ASP熟悉一点,所以以下只讲解Flash与ASP的对联;

查看Flash的帮助文件,可以找到好几种的交互方法,

本人使用最多的还是:

loadVariablesNum(url:String, level:Number, [method:String]) : Void

loadVariablesNum(参数1,参数2,参数3),参数1为变量所处位置的绝对或相对 URL,参数2为一个整数,指定 Flash Player 中接收这些变量的级别

参数3为发送变量的 HTTP 方法,常用的有"get"和"POST",推荐使用"POST"方法。

例1:新建一个Flash文件,拖一个可输入的文本框组件,取实例名为name_txt,再拖入一个按钮组件到场景中,取实例名为send_btn,在第一帧上写

 _root.send_btn.onRelease=function()

{

if(_root.name_txt.text!="")

{

myname=_root.name_txt.text;

loadVariablesNum("write.asp",0,"POST");

}

}

那么,测试影片后,在文本框中,输入一个不为空的字符后,点击发送按钮后,输入的内容,将被提交到同一个文件夹中的名为"write.asp"中去!

write.asp通过Request.Form("myname")的方法,就可以得到提交过来的数据,这里就简单的实现了 Flash向ASP提交数据。

接下来看看Flash如何从ASP读数据:

例2:新建一个Flash文件,拖一个动态文本框组件到场景中,取实例名为read_txt,在第一帧上写

 loadVariablesNum("read.asp",0,"POST");

_root.read_txt.text=myname;

理论上测试后,read_txt文本框会显示read.asp提交过来的myname中的值,但是有时候不能够保持实时性,常常得不到数据,相信也有许多朋友

会遇到同样的问题,这里讲两个小技巧。

技巧一:

首先可以在Flash初一个变量为 active_old=0; 在ASP中Response.Write("active_new=1")

那么Flash里可以写上: 

 active_old=0;

_root.onEnterFrame=function()

{

loadVariablesNum("read.asp",0,"POST");

_root.active_old=active_new;

_root.read_txt.text=myname;

if(_root.active_old==1)

{

delete _root["onEnterFrame"];

}

此段代码表示,开始Flash会不断地访问read.asp,read.asp会把变量active_new传递给Flash中的_root.active_old,当_root.active_old改变后,

将停止事件。

技巧二:

使用loadVariablesNum("read.asp?temp="+random(10000),0,"POST");的方式,在每次访问时会得到最新的数据,不会再使用缓存中的信息。

关于ASP中的代码如何书写,不再多作解释,重点讲解Flash如何准确和及时得到数据库里的数据,达到我们期望的功能。

[备注]

我们常会遇到,中文提交到数据库后,数据显示出来为乱码,主要是由于编码的原因,只要在ASP中写上  codePage=”936”%>

Flash和XML的交互

应该来说,用XML和Flash来交换数据,还是不错的选择,首先,XML可以根据我们的需要,很清晰地定义其结构,Flash也可以很容易去解释信息。

例3:

myxml=new XML(); //创建一个XML新对象

myxml.ignoreWhite=true; //空白忽略

myxml.load(“music.xml”); //加载同目录下的music.xml文件

myxml.onLoad=function(success)

{

if(success)

{

ReadXML();

trace(“加载成功”);

}else

{

trace(“加载失败”);

}

}

以上的代码就能够检测xml是不是加载到Flash中去了。

以下是个简单的XML文件 

name=”song1” url=”mp3/01.mp3” />

name=”song2” url=”mp3/02.mp3” />

name=”song3” url=”mp3/03.mp3” />

XML加载进来后,我们需要做的是去解析和提取数据,为我们所用。

以上ReadXML()函数就用来读数据。

Function ReadXML()

{

myArray=myxml.firstChild.childNodes; //把myxml的第一个子结点所有的数据以数组的方式给myArray

totalNumber= myArray.length; //

for( i=0; i< totalNumber ; i++ )

{

arr_1= myArray[i].attributes.name;

arr_2=myArray[i].attributes.url;

}

}

现在,我们可以得到的结果是,在数组arr_1中保存了所有歌曲的名字,在数组arr_2中保存了所有歌曲的路径,我们就可以使用loadSound()等方法制作一个自己的播放器了!

XML与ASP

Xml和ASP各有各的优势,xml数据结构很清楚,但是没有ASP灵活,而且还可以查询和修改数据库,所以想一想,如果用ASP来动态生成xml,那么我们就可以两全其美了!

这里需要一点ASP知识!

以下一段实现ASP生成指定的XML。

response.ContentType="text/xml"

if request.QueryString("Page")<>"" then

Page=Cint(request.QueryString("Page"))

else

Page=1

end if

pgsz=5

%>

DataBaseName="Manage/Message/Message.mdb"

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath(DataBaseName)

set rs=server.CreateObject("Adodb.recordset")

rs.open "Select * from Message order by addtime desc",conn,1,1

if not rs.eof then

rs.pagesize=pgsz

Rs.Absolutepage=Page

%>

" Pagecount="" PageSize="" Recordcount="">

i=0

do while not rs.eof and i

%>

" Sex="" Email="" Time="--" Homepage="" Title="" Content="" Reply=""/>

i=i+1

rs.movenext

loop

%>

end if

rs.close

set rs=nothing

Conn.Close

set Conn=Nothing

%>

[备注]

我们常会遇到,XML中如果有中文,将会成乱码,所以只要在Flash中写上

System.useCodePage=true,就OK了!

以上只是些基础知识,下面具体讲解留言板的制作和关键:

效果地址:http://www.u-lee.com/bbs.htm

是我的第一个版本的留言板

留言板主要包括以下功能:游戏,留言(提交留言),播放音乐(mp3),管理功能(删除留言)

使用到的技术:AS,ASP,XML, database

需要解决的技术问题:

1.留言内容的分页显示,

2,使用List组件显示歌曲列表,列表使用XML动态更新,

3,使用ScrollPan组件存放留言内容,当有新的留言内容产生时,自动调整位置,最新留言置顶,

4,加载声音文件,如何实现播放完一首歌曲后,自动换到下一首,

5,删除留言自动调整页面。

原理是把所有的数据用ASP提取出来,然后由Flash来判断,使用split方法,把数据存到数组里去,需要时,再去取,这样有一个弱点,就是使用起来,分页时,会把不需要的数据也调用了进来,不是很科学!

接下来讲的是改进后的版本。原理是用ASP动态生成XML,当分页时,点下一页时,继续访问ASP,从新生成第二页的XML,都由Flash访问XML,来加载数据,由ASP访问数据库,读和写数据。

V2.0 版本中Flash原文件共有3个,leave.swf 只是个容器,把write.swf和leave.swf 加载到里面去。

write.swf为提交数据,read.swf 为读数据.

leave.swf :

两个按钮 , 一个 查看留言 btn1 一个我要留言.btn2 

btn1: _parent.mess.loadMovie("read.swf");

btn2: _parent.mess.loadMovie("write.swf"); 

其中还有, 上一页 和下一页 以及一个下拉条

主要代码: 

xiala.onEnterFrame = function() { //下拉的位置,控制着留言内容mess的位置

if (ggg == 1) {

mess._y = 28;

} else {

y = xiala.btn._y;

yy = y/dist1;

mess._y = b_2*yy+30;

}; 

write.swf 

 (图片见word文档)

[1] [2]  下一页

文章录入:晴天    责任编辑:音乐听听 
  • 上一篇文章:
  • 下一篇文章:
  • 【字体: 】 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    广告招商
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    ::发表评论::
     姓 名:
     评 分: 1分 2分 3分 4分 5分
     评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用本网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 广告招商
    文章 下载 图片 文字广告
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 管理登陆

    备案/许可证编号: 闽ICP备16020960号-1号 域名创建于2016年8月
    版权: 沐阳乐园 All Rights Reserved 站长:张萍 邮箱:381415887@qq.com 联系QQ:联系站长