网站制作学习网Flash→正文:Flash 与 Asp 的结合使用
字体:

Flash 与 Asp 的结合使用

Flash 2008/1/4 8:37:28  点击:不统计

Flash 与 Asp 的结合使用

作者:翅膀 来源:PConline 加入时间:2007-3-5 11:22:12 访问次数:83  Flash 的功能已经非常强大,完全可以跟其他的服务器端语言结合起来,做出适合现在的网络应用的网站。一个典型的模式就是Flash 与Asp的结合使用。其架构如图1所示。







图01



  可以把上面的结构看成是三层,Flash是一层,Asp是一层,数据库是一层。对Flash和Asp有点了解的人,只要处理好层与层之间的交互,结合使用Flash与Asp就决不是什么难事。



  一、下面我们就先来看看Flash与Asp之间的交互



  Flash与Asp的通讯是用Http协议,其请求格式为http://ip地址?参数1=值1&参数2=值2



  即是在目的地址后面加上问号,再跟上参数字符串,参数之间用“&”号格开。如:

http://www.pcedu.com.cn/test.asp?userid=guest&pwd=123



  在上面的请求中,请求的目的文件为:http://www.pcedu.com.cn/test.asp,第一个参数名为userid,值为guest,第二个参数名为pwd,值为123。



  Flash与Asp之间的交互无非就是构造上面的请求字符串。



  1、在Flash中,先构造好请求的字符串,然后利用函数LoadVariables(),就可以向服务器端发送请求和参数。我们来详细看看LoadVariables()这个函数。



  函数的标准格式为loadVariables ("url" ,level/"target" [, variables])



  在函数的各个参数中,url就是上面说的请求字符串。level/“target”是返回值的“层次”或者“目标”,这两个当中只能指定一个。variables是请求的方式,其值可以是“Get”或者是“Post”,一般Get用于参数值比较短的传送,Post用于参数值比较长的传送,这个参数是可选的。比如loadVariables ("http://www.pcedu.com.cn/guest.asp?userid=guest&pwd=123" ,0, “GET”)就是一个完整的请求。



  2、在Asp中,先要取得从Flash端传送过来的参数,这跟操作普通的HTML表单是一样的。都是利用Request对象,其语句为:



username = Request(“userid”)

password = Request(“pwd”)



  userid和pwd就是从Flash端发送过来的参数名,如果是上一步中的请求字符串,username的值为guest,pwd的值为123。



  3、在服务器端处理完请求,获得所需要的值后,Asp向Flash端发送结果,跟从Asp中操作Html语言一样,都是用Response对象,其语句为:



Response.Write(“login=true&des=success”)



其返回值1的名为login,值为true,返回值2的名为des,值为success。



  4、在Flash端取得从服务器端返回的值,与操作Flash中普通的变量没什么不同。如:

_root.gotoAndPlay(eval(login))表示的是跳转到login的值的那一帧。但要注意的是在发送请求一段时间之后,才能用返回值,不然取得的是尚未返回的值,错误就在所难免了,而且这一类的错误很难发现,用的时候要多加小心。



  二、Asp与数据库之间的交互



  在Asp与数据库的交互一般是用ADO控件。其读取数据库的语句为:



‘定义一个Connection对象

set conn=Server.CreateObject("ADODB.Connection")

‘用Connection对象打开数据库,这里打开的是sql server,数据库的地址为192.168.1.32

‘数据库的用户名为zengyu,密码为123

conn.open application("Driver={SQL Server};SERVER=192.168.1.32;DATABASE=test;UID=zengyu;PASSWORD=123")

‘创建一个Recordset对象

set rstemp=Server.CreateObject("ADODB.Recordset")

‘构造一个sql语句

sqltemp1="select * from UserInfo where userid='"&strname&"' and password='"&strpassword&"'"

‘查询数据库

rstemp.open sqltemp1,conn, 1, 1

if not(rstemp.bof and rstemp.eof) then

Response.Write (“login=true”)

end if



  这里实现的只是简单地查询数据库,要想了解Asp操作数据库更详细的东西,可以找Asp与数据库方面的资料深入学习一下。



  三、例子――登陆的实现



  下面我们来制作一个简单的实例,在Flash端输入用户名和密码,通过Asp查询数据库,如果用户名和密码正确,就跳转到登陆成功界面,否则就跳转到登陆失败界面。



  1、新建一个Flash,在场景中制作两个文本框和一个Button,如图2所示。其中用户名对应的文本框属性如图3所示,密码对应的文本框属性如图4所示。注意其中的文本类型和变量名。

  2、创建另外两个关键帧,分别命名为“true”和“false”,并分别显示“登陆成功”和“登陆失败”字样。



  3、在Button的ActionScript中增加下面的语句,注意更改其中的ip地址。



on (release) {

loadVariables("http://192.168.1.32/guest.asp?userid=" add eval(_root.userid) add "&pwd=" add eval(_root.pwd),this, "GET");

now = new Date();

begintime = now.getSeconds();

while(true) {

endt = new Date();

endtime = endt.getSeconds();

if (endt - now > 2)

{

_root.gotoAndPlay(eval(login));

}

}

}



  4、在Sql Server数据库(数据库的类型不重要,改一改连接串就可以的)中,建立一张名为“userinfo”的表,其中有“Userid”和“Password”两个字段。



  5、建立一个guest.asp文件,文件内容为





  6、将Flash文件和Asp文件部署到IIS服务器中,然后打开Flash文件,输入登陆信息就可以看到实例的效果了。



·上一篇:[转载] Flash简单制作探照灯效果 >>    ·下一篇:[转载] 跟随鼠标移动拉伸的蜘蛛丝 >>
推荐文章
最新文章