在Flash中实现与数据库的连接
摘 要:在动态网页设计中, ASP 与 Flash 技术得到了广泛的应用。 ASP 具有强大的数据库处理功能, Flash 能够实现交互性矢量动画,将 Flash 与 ASP 相结合,实现 Flash 与数据库的连接。
关键词: Flash ASP
一、引言
Flash 是 MacroMedia 公司专为网络应用设计的一个交互性矢量动画设计软件。网站设计者可以使用 Flash 为网站设计各种动态 Logo 动画、导航条以及全屏动画,还可以加入动感音乐,完全具备多媒体的各项功能。 Flash 以其体积短小,流体播放的特点迅速打开市场,将 WWW 上的站点页面设计带上了一个全新的高度。
实现 Web 数据库的应用一般有两种方法:一种是 Web 服务器端提供中间件,连接 Web 服务器与数据库服务器;另一种是把应用程序下载到客户端直接访问数据库。最常用的中间件技术有通用网关接口 (CGI) 和应用程序编程接口 (API) 两种。 CGI 程序存在效率低、速度慢等缺点;而 API 很大程度上克服了 CGI 的缺点,但其兼容性差,开发难度大也让许多开发人员望而却步。客户端访问数据库主要包括 JavaScript 和数据库连接器 (IDC) 等。用 JavaScript 和 IDC 开发 Web 数据库虽然简单,但也存在功能有限、不能完全控制其过程等缺点,所以它们也无法胜任较复杂的 Web 数据库的开发。微软推出的 ASP 方案很好地解决了这些难题。
ASP ( Active Server Page )是 Microsoft 公司推出的一种基于服务器端的脚本编程语言,它很容易和数据库连接。 Flash 与 ASP 的组合使网页功能更加强大,可以通过它们和数据库连接,能使我们的网站不仅具有强大的数据支持而且具有完美的交互界面。
变量可以通过 URL 传递给 Flash ,这是一种 GET 方法,把变量传递给一个 swf 文件的具体实现是:
接着文本 "Text of my variable" 将会出现在 Flash 的动画中指定的位置,我们只要把 Flash 所需要的数据准备好就可以实现与数据库的连接,然后利用 Flash 中的动画功能就可以做出既具有强大的数据处理能力又具有强大的交互能力的美观网页。
ASP 和数据库的连接可用如下语句实现。
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "people"
这样数据库就和 ASP 连接上,从而 Flash 与数据库连接上去了。
在 Flash 中使用 ASP 必须满足以下条件:服务器端 server 必须支持 Active Server Pages 并且支持数据库;客户端必须安装 Flash 插件。
二、在 Flash 中使用数据库
第一步要做的是建立数据库。我们使用 Access 数据库为例,表名为 Staff ,有三个字段: ID ( 自动编号 ), Known(Text) , name (Text) 。这是一个用来示范用户名的数据库。
第二步就是建立一个 Flash 5 的动画。步骤如下:
(1)建立三个 text field. 它们是用来显示数据用的。
(2)把第一个 text field 的 name 设置为 Input ,它是用来接收输入数据的。
(3)另外两个 text field 分别命名为 KnownAs 和 Surname 。
(4)其它设置先为默认。
(5)最后,从 Flash 的 library 中选择增加一个按钮 ( 应该是一个可重用的组件 ScrollBarButton ) 。这是很重要的一步,按钮将把输入的变量传递给 ASP 页面。到按钮的属性 (Properties) 上单击 Action 页,单击 "+" 号和 On MouseEvent. 勾上 Release 框。
(6)再次单击 "+" 号和 Load/Unload Movie. 选择 "Load Variables Into Location" 在 URL 输入框内输入你的 ASP 文件名 ( 例如 flash.asp). 选择 Target 。
(7)最后 , 选择 Variables 中的 Send using POST , 单击 "+" 号来设置变量在 Variable 输入框内输入 "Input"( 就是第一个 text field 的 name) 。当上面的工作都完成后,可以在 action box 内看到如下内容:
On (Release)
Load Variables ("flash.asp", "", vars=POST)
Set Variable: "Input" = ""
End On
这样当在动画过程中这个按钮被点击并释放后, Input 输入框中的内容将被传递给 flash.asp 文件。注意 Form 是使用的 post 方式传递变量的。
(8) 建立一个 HTML 页面,在其中包含这个 Flash 动画文件。
第三步: ASP 文件的代码
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "people"
SQL = "SELECT * FROM Staff WHERE ID=" & Request.Form("Input") & ";"
Recordset.Open SQL,Connection,1,2
If Recordset.EOF Then
KnownAs = "Not"
Surname = "Found"
Else
KnownAs = Recordset ("Known")
Surname = Recordset ("name")
End If
Recordset.Close
Connection.Close
response.write("KnownAs="+Server.URLEncode(KnownAs))
response.write("&Surname="+Server.URLEncode(Surname))
%>
需要注意的是在把 KnownAs 和 Surname 传递回去的写法,将是这样的
Known=Data1&Surname=Data2
使用 Server.URLEncode(VariableName) 来保证传递过去变量的是按照 URL 格式编码的。
参考文献
1、陈怡杰, Flash 5 动态网页设计精粹,清华大学出版社, 2001
2、唐青松,颜亮, ASP 应用开发全攻略宝典,中国铁道出版社, 2001