今天,由我Voidman同学来向大家展示如何制作一个超炫的写吧。没见过的可以点这里去瞧瞧。首先说明下功能,实话说,这玩意儿功能真的不咋滴,一个普通的asp留言板都比他强。但我追求的是华丽(不要误会,我指的不是绣花枕头)。要说什么技术华丽----Flash。
而Flash是不能直接连接数据库的,所以找个中间件ASP来搭起Flash和数据库之间的桥梁。为了实现Flash读取数据库里的内容,ASP要负责把数据库里的数据读出来,然后再发送给Flash,而Flash只是负责接受并以某种形式显示出来。而实现Flash把数据写到数据库则刚好相反,Flash把要写入的数据发送给ASP,ASP接受后写入数据库。怎么样,简单吧~
第一部分:读取数据
预览地址:http://webotu.com/Upload/Test/Test.swf
首先建立一个数据库表,表名为test,有两个属性id和content。content的类型为文本
Test.asp
dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("[数据库名 ]")&";"
set rs=server.createobject("adodb.recordset")
rs.open "select content from [表名 ]",cn,3,3
while not rs.eof
totalContent=totalContent&rs("content")&"#"
'把数据库中的每条内容以#分割
rs.movenext()
loop
response.write ("flashC&")
'输出为flashContent=内容1#内容2#内容3#……&相当于一个变量,
'名为flashContent,值为内容1#内容2#内容3#……&
rs.close
cn.close
%>
Test.fla
在第一帧加入动作
System.useCodepage = true; //显示中文
var newload = new LoadVars(); //创建LoadVars类的对象newload
newload.load("Test.asp");
newload.onLoad = function(success) { //开始接受数据
if (success) {
_root.gotoAndStop(2); //全部接受完毕后则跳入第2帧
}
};
在第2帧中创建一个影片剪辑名为b,在b影片剪辑中创建一个动态文本,变量设为content
在帧上加入动作
System.useCodepage = true; //显示中文
var aspcontent = newload.flashContent; //接受flashContent变量
var Acontent = new Array(); //开辟一个数组
for (i=0; i<aspcontent.length; i++) {
Acontent = aspcontent.split("#", i); //以#为分割,把每段放入数组中
}
for (i=0; i<Acontent.length-1; i++) {
//以自己创建的影片剪辑为母体,复制一份, 命名为b[i ],深度为2000-i
duplicateMovieClip(b, "b"+i, 2000-i);
//把Acontent数组中的字符串Acontent[i ]写入b[i ]中
_root["b"+i ].content = Acontent[i ];
//把b[i ]的x,y坐标设为范围随机,把每个b[i ]分开
_root["b"+i ]._x = 700*Math.random();
_root["b"+i ]._y = 500*Math.random()+50;
}
stop();
第二部分:写入数据
预览地址:http://webotu.com/Upload/Test/write.swf
write.fla
第一帧添加一个矩形做底,上面创建一个输入文本域,名字为inContent,再创建一个按钮btn
第一帧添加帧动作
System.useCodepage = true; //以便写入中文
addDate = new LoadVars();
_root.btn.onRelease = function() { //按下btn按钮后
addDate.content = _root.inContent.text;
//把输入的文本赋值给addDate对象的content属性
addDate.send("write.asp", addDate, "_blank", "post");
//发送到write.asp
addDate.onLoad = function(success) {
if (success) {
} else {
}
};
};
write.asp
dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &server.mappath("test.mdb")&";"
myContent =Trim(Request("content"))
//接受content属性,赋值给 myContent
if myContent="" then
response.Redirect("write.swf") //如果输入为空,则返回
end if
set rs=Server.CreateObject("ADODB.Recordset")
sql="select content from test"
rs.open sql,cn,1,3
rs.addnew
rs("content")=myContent //写入数据库
rs.update
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
response.Write("提交成功!")
%>
当然,这些只是最基础的flash连接数据库的方式。光掌握这些还不能写出一个完善的写吧,还有很多问题会碰到,比如排列,拖动,分页等。且听下回分解。