分类

安卓应用安卓游戏攻略资讯

Flash

flash与asp的结合应用实例之一 论坛的实现(下)

作者:佚名 来源: JZ5U整理 日期:2005-8-21 0:41:33
  三、查看具体内容部分

  查看具体内容部分的原理跟查看主题部分的原理类似:向服务器端发送请求,根据返回情况显示返回内容。

  A、 Asp部分

  新建一个空白文件,命名为show.asp,内容如下:

<%
id = request("id")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQL Server};SERVER=192.168.1.32;DATABASE=pywz"
set rstemp=Server.CreateObject("ADODB.Recordset")
sqltemp="select * from BbsInfo where id=" & id ‘注释1
rstemp.open sqltemp,conn, 1, 1

if not rstemp.EOF and not rstemp.BOF then ‘注释2
response.Write("author=" & trim(rstemp("Author")) & "&id=" & trim(rstemp("ID")) & "&sub=" & rstemp("Title"))
else
response.Write("id=0") ‘注释3
end if
rstemp.close
conn.close
%>

  注释1部分为根据id号去查询相应的记录内容。注释2部分为查到相应的记录,返回记录内容。注释3部分为没有找到相应的记录,返回id的值为0。

  B、 Flash部分

  1、新建一个组件,命名为“showloop”,在第一帧的Action面板上增加下面的语句:

_root.count = 0;
stop();

  在第五帧上插入关键帧,在其Action面板上插入如下语句:

if (!(_root.id)) {
_root.count = _root.count + 1;
if (_root.count > 50)
{
_root.gotoAndPlay("netfalse");
_root.showloop.gotoAndStop(1);
}
_root.showloop.gotoAndPlay(2);
}
else if (_root.id == "0") ‘注释1
{
_root.showtxt = "找不到符合条件的记录";
}else
{
_root.showtxt =_root.id add _root.author add _root.sub; ‘注释2
_root.showloop.gotoAndStop(1);
_root.gotoAndPlay("show");
}

  注释1部分为没有找到相应的记录,注释2部分为显示返回的记录内容,并跳转到相应的界面。

  2、将组件“showloop”从图库中拖放到场景中,命名为“showloop”。

  3、在场景中的“查看”Button的Action面板上依次增加下面的语句:

  Button 0上增加:

on(release){
loadVariables("show.asp?id=" add _root.id0, this, "POST");
_root.showloop.gotoAndPlay(2);
}

  Button 1上增加:

on(release){
loadVariables("show.asp?id=" add _root.id1, this, "POST");
_root.showloop.gotoAndPlay(2);
}

  Button 2上增加:

on(release){
loadVariables("show.asp?id=" add _root.id2, this, "POST");
_root.showloop.gotoAndPlay(2);
}

  Button 3上增加:

on(release){
loadVariables("show.asp?id=" add _root.id3, this, "POST");
_root.showloop.gotoAndPlay(2);
}
  Button 4上增加:

on(release){
loadVariables("show.asp?id=" add _root.id4, this, "POST");
_root.showloop.gotoAndPlay(2);
}
  Button 5上增加:

on(release){
loadVariables("show.asp?id=" add _root.id5, this, "POST");
_root.showloop.gotoAndPlay(2);
}

  Button 6上增加:

on(release){
loadVariables("show.asp?id=" add _root.id6, this, "POST");
_root.showloop.gotoAndPlay(2);
}

  Button 7上增加:

on(release){
loadVariables("show.asp?id=" add _root.id7, this, "POST");
_root.showloop.gotoAndPlay(2);
}

  这些Action无非就是向服务器端发送请求,启动循环,只是发送的参数不同而已。

  4、在主场景中的第15帧插入关键帧,帧标签为“show”,在其Action面板上插入:stop();
场景中的布局如图6所示。其中文本框的属性设置如图7所示。在“返回”Button的Action面板上增加下面的语句:

图06

图07

on(release){
_root.gotoAndPlay("main");
}

  四、发表新主题部分

  发表新主题的原理为:向服务端发送要发表的内容,服务器端做相应的操作之后返回操作结果。

  A、 Asp部分

  新建一个文件,命名为insert.asp,其内容如下:

<%
title = request("title")
content = request("content")
author = request("author")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQL Server};SERVER=192.168.1.32;DATABASE=pywz"
sqltemp="insert bbsinfo (Author,Title,Content) values ('" & author & "','" & title & "','" & content & "')"
conn.Execute(sqltemp) ‘注释1
response.Write("insert=1") ‘注释2
conn.close
%>

  注释1部分为向数据库中插入相应的值,注释2部分为返回操作的结果。

  B、 Flash部分

  1、新建一个组件,命名为“insertloop”,在其第一帧的Action面板上增加下面的语句:

_root.count = 0;
stop();

  在第五帧上插入关键帧,在其Action面板上增加下面的语句:

if (!(_root.insert)) { ‘注释1
_root.count = _root.count + 1;
if (_root.count > 50)
{
_root.gotoAndPlay("netfalse");
_root.insertloop.gotoAndStop(1);
}
_root.insertloop.gotoAndPlay(2);
}
else ‘注释1
{
_root.gotoAndStop("show");
_root.showtxt = "插入成功,请返回";
_root.insertloop.gotoAndStop(1);
}

  注释1部分为检查是否已经有返回的操作结果。注释2部分为根据返回的结果跳转到相应的界面。

  2、回到主场景第10帧,在“发表”Button的Action面板上增加下面的语句:

on (release){
_root.gotoAndPlay("insert");
}

  3、在主场景的第20帧上插入关键帧,设帧标签为“insert”,在帧的Action面板上增加下面的语句:stop();

  场景的布局如图8所示。其中标题所对应的文本框的设置如图9所示,正文所对应的文本框的设置如图10所示。

图08

图09

图10

  4、将组件“insertloop”从图库中拖到第20帧的场景中,命名为“insertloop”。

  C、 小结与提高

  注意在这里一定要从服务器端返回操作结果,不然Flash中不会知道操作的情况。论坛的回复功能也差不多的制作方法,在这里就不再实现了。

  五、删除部分

  删除部分的原理为:向服务器端发送要删除的记录的id号,服务器端进行相应的操作后返回操作结果。

  A、 Asp部分

  新建一个文件,命名为del.asp,内容如下:

<%
id = request("id")
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={SQL Server};SERVER=192.168.1.32;DATABASE=pywz"
sqltemp="delete from BbsInfo where id=" & id
conn.Execute(sqltemp) ‘注释1
response.Write("del=1") ‘注释2
conn.close
%>

  注释1部分为根据id号去删除记录,注释2部分为返回操作结果。

  B、 Flash部分

  1、新建一个组件,新建一个组件,命名为“delloop”,在其第一帧的Action面板上增加下面的语句:

_root.count = 0;
stop();

  在第五帧上插入关键帧,在其Action面板上增加下面的语句:

if (!(_root.del)) { ‘注释1
_root.count = _root.count + 1;
if (_root.count > 50)
{
_root.gotoAndPlay("netfalse");
_root.delloop.gotoAndStop(1);
}
_root.delloop.gotoAndPlay(2);
}
else ‘注释2
{
_root.gotoAndStop("show");
_root.showtxt = "删除成功,请返回";
_root.delloop.gotoAndStop(1);
}

  注释1部分为检查是否已经有返回的结果,如果没有则继续循环。注释2部分则根据返回的结果进行相应的处理。

  2、将组件“delloop”从图库拖到场景的第10帧上,命名为“delloop”。

  3、在场景中的“删除”Button的Action面板上依次增加下面的语句:

  Button 0上增加:

on(release){
loadVariables("del.asp?id=" add _root.id0, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 1上增加:

on(release){
loadVariables("del.asp?id=" add _root.id1, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 2上增加:

on(release){
loadVariables("del.asp?id=" add _root.id2, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 3上增加:

on(release){
loadVariables("del.asp?id=" add _root.id3, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 4上增加:

on(release){
loadVariables("del.asp?id=" add _root.id4, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 5上增加:

on(release){
loadVariables("del.asp?id=" add _root.id5, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 6上增加:

on(release){
loadVariables("del.asp?id=" add _root.id6, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  Button 7上增加:

on(release){
loadVariables("del.asp?id=" add _root.id7, this, "POST");
_root.delloop.gotoAndPlay(2);
}

  这些按钮上面的Action是向服务器端发送要删除的相应记录的id,同时开始循环,等待返回结果。

  4、新场景

  在第25帧上插入关键帧,帧实例名为“netfalse”,在帧的Action面板上增加下面的语句:

stop();

  场景的布局如图11所示。 “返回”Button的Action面板上增加下面的语句:

图11

on (release) {
_root.gotoAndPlay("login");
}

  C、 小结与提高

  删除记录也一定要返回操作结果以方便控制流程。还要注意的是,一般论坛中的删除记录功能是需要一定权限的,所以在完善功能的时候要控制用户的权限。

  六、总结

  至此,一个比较完善的论坛功能就算完成。在这里重点是介绍功能的实现,至于界面就还要请大家多多包涵了。如果在制作过程中有什么不明白的地方,可以一边参考源文件一边制作,也可以给我写E-mail: zengyu111@sohu.com。

  本实例的开发环境和开发工具如下:WIN2000 Advanced Server、IIS5.0、SQL Server2000、Flash MX、记事本。注意论坛的效果要先将文件放在IIS里面才能看到。

  附录:数据库字段

  在本实例中用到两个表:用户表(UserInfo)和内容表(BbsInfo),其字段如下所示。

  UserInfo表有Userid、Password两个字段。
  BbsInfo表有Id、Title、Author三个字段。

  可以根据应用的需要增加相应的字段。

展开

文章推荐

应用推荐

网友评论