2005/09/01 | flash asp调用数据库方法
类别(flash As) | 评论(2) | 阅读(655) | 发表于 17:15
第2卷 FlashMX数据库初级间接连接方法
原创: THOR (转载者请保留“作者:THOR”等字样,QQ 488915,Email coolthor@163.com)
声明: 对Actionscript和ASP不感兴趣者以及认为FLASH只能做动画片者,请Get OUT!
留言: 呵呵,本人初来乍到,希望大家多多支持,要是写了文章能加专家分就好了:)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
本卷将和大家讨论FlashMX通过ASP操作数据库的基本方法。好了,我们首先来了解一下,FLASH通过ASP操作数据库需要分哪些步骤来完成……

首先我们要先写好操作数据库的ASP脚本,然后再使用FLASHMX来读取ASP的运行结果(注意:这里仅仅只是需要ASP的运行结果而已,所以需要在ASP中去除一切无用的Html标记),我们先来掌握一下专为FlashMX提供数据的ASP的编写方法。ASP部分提供数据时应保证最后的运行结果应为:

变量名1=值1&变量名2=值2&变量名3=值3...

这样的话就相当于ASP部分为FlashMX中的变量进行赋值,当FlashMX中接收到数据之后便可以直接引用这些变量的值(注意:多个变量时,每个变量之间应用&号隔开!)
我们先以下面这段非常简单的程序为例:
文件名: Test.asp
<%="aspRect=Hello! Macromedia FlashMX 6.0"%>
或者写成:
<%
Response.write "aspRect=Hello! Macromedia FlashMX 6.0"
%>

这两种写法的功能是相同的,各位熟悉ASP的朋友看过这段代码后也许忍不住会问:“那不就相当于直接在页面中写aspRect=Hello! Macromedia FlashMX 6.0么?,呵呵,对,如果你直接在页面中写这句,FlashMX也是可以读到的,这也就是FlashMX读取文本文件的方法(呵呵,说到这里,我记得在CSDN的FLASH版块中曾经有这样一贴中,有人问Flash怎样获取到ASP中的变量值,有人回答将ASP的变量值写到文本文件,然后再来用FLASH读取文本文件,我看过之后,一时性急,来了句“脱裤放屁,多此一举”,虽然话可能听起来不怎么舒服,但确实是多此一举,因为FLASHMX直接就可以读到ASP了,干嘛还要用文本文件来一下呢?)

言归正传,我们现在已经完成了ASP部分的代码,然后我们再来准备编写FLASHMX部分的数据接收代码……
在FLASH中可以接收数据的语句有很多(在上一卷中已经提到过了),我们主要推荐两种,一个是LoadVariables语句,另一个是LoadVars对象,本卷将向大家讲解LoadVariables语句的使用。

LoadVariables语句由于在读取数据时没有回调功能,也就是无法产生数据接收完毕的事件,所以,我们需要建立一个循环来判断是否接收到了数据,我们以下面这代码为例
文件名: Test.fla
在FLASHMX的默认场景中创建4个关键帧,
第1个关键帧的代码如下:
loadVariables("test.asp",_root,"GET");
//Loadvariables的第1个参数为ASP文件名,也就是刚才我们写的那个
//Loadvariables的第2个参数为接收对象,也就是将在哪个对象中创建变量
//Loadvariables的第3个参数为"GET"或者"POST",在此语句中建议使用GET方法
第2个关键帧的代码为空
第3个关键帧的代码如下:
if(aspRect ne ""){
/*如果变量aspRect的值不为空,也就是已经接收到了数据则转向第4帧*/
gotoAndPlay(4);
}
else{
/*如果变量aspRect的值为空,也就是还没有接收到数据则转向第2帧*/
gotoAndPlay(2);
}
第4个关键帧的代码如下:
trace(aspRect); //显示变量aspRect的值
stop();

这样我们就可以在FLASHMX中获取到ASP中的数据,ASP的代码经过改进之后更可以完成比较复杂的应用。假设我们现在有一个Access 2000的数据库,其中有一个User的数据表,这个数据表中由以下字段和记录

记录\字段 id(主键) user(文本) sex(逻辑)
-----------------------------------------------------------------------------------------
1 thor true
2 csdn false


假设我们现在要在FLASH中通过指定ASP的参数来获取ID为1或者ID为2的记录中的USER字段值或者SEX字段值的话,我们可以这样来做:
ASP部分:文件名Test.asp
<%
dim conn,rs,db,connstr
db="数据库文件名"
Set conn = Server.CreateObject("ADODB.Connection")
Server.MapPath(db)
connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(db)
conn.Open connstr ''建立数据库连接

dim parID,strSQL,AspUser,AspSex
parID=Request.QueryString("ID") ''获取ASP参数ID
strSQL="select top 1 * from user where id = " & parID
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.open strSQL,conn,2,3
if rs.eof then
AspUser="无此记录"
AspSex="无此记录"
else
AspUser=rs("user")
AspSex=rs("sex")
end if
rs.close
conn.close
response.write "AspUser=" & AspUser & "&AspSex=" & AspSex
%>
FlashMX部分:
详细代码省略,大家对照上面的FLASH代码改改就行了,把第一帧的代码改为loadVariables("test.asp?id=1",_root,"GET");
然后把所有的aspRect改为AspUser或者AspSex,最后第4帧的代码改为
trace(AspUser);
trace(AspSex);


大家玩到这里的时候应该明白了FLASHMX的Loadvariables的用法了,熟悉ASP的朋友再稍稍变更一下ASP的代码就能完成功能稍稍复杂一点的应用了,不过Loadvariables由于没有回调功能以及相关功能上的限制,这条语句我已经很久没用了,在下一卷中将向大家介绍功能更强大的LoadVars的用法,相信大家在掌握了LoadVars之后也会跟我一样扔掉Loadvariables语句 ^_^
:::: [第2卷完] :::: [待续] ::::
0

评论Comments

日志分类
首页[193]
flash As[107]
有的没的[59]
数码照片[4]
自由世界[19]
blender[4]