FlashMX数据库操作完全攻略-上部-第2卷

thornet 2003-07-14 11:07:19
第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卷完] :::: [待续] ::::
...全文
56 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
beggarofbeggar 2003-07-24
  • 打赏
  • 举报
回复
mark
fivestars070 2003-07-24
  • 打赏
  • 举报
回复
支持支持支持支持支持支持支持支持支持支持支持█████████支持支持
支持支持支持支持支持支持支持支持支持███████████████支持
支持支持支持支持支持支持支持无██████████████████支持
支持支持支持支持支持无████████████████支持支持支持支持
支持支持支持支持███████无███支持█████支持支持支持支持支
支持无████████████支持支持支持████支持支持支持支持支持
无██████████████支持支持支持████支持支持支持支持支持
无████████████支持支持支持无███████████支持支持
无████████████支持支持支持██████████████支持
支持██████████支持支持无██████支持无███████支持
支持支持支持支持████支持支持无████支持支持支持█████支持支
支持支持支持支持████支持支持████支持██支持无█████支持支
支持支持支持支持████支持支持████支持████无█████支持支
支持支持支持支持████支持支持████支持████无█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持███支持████支持█████支持支
支持██支持无█████支持支持███支持███支持无█████支持支
支持██████████支持支持无██支持██支持支持█████支持支
支持无█████████支持支持支持支持███支持支持无████支持支
支持支持无███████支持支持支持支持███无████支持支持支持支
支持支持支持██████支持支持支持无████支持█████支持支持支
支持支持支持支持无███支持支持支持█████支持无███████支持
支持支持支持支持支持支持支持支持██████支持支持无██████支持
支持支持支持支持支持支持支持无██████支持支持支持███████支
支持支持支持支持支持支持支持█████支持支持支持支持无██████支
支持支持支持支持支持支持无█████支持支持支持支持支持无████支持
支持支持支持支持支持支持███支持支持支持支持支持支持支持无███支持
thornet 2003-07-18
  • 打赏
  • 举报
回复
parID=Request.QueryString("ID") 中的ID是來自FLASH發來的GET參數
chenyu510 2003-07-18
  • 打赏
  • 举报
回复
我照着做了
果然高明!
up!
wchunge 2003-07-18
  • 打赏
  • 举报
回复
我按照您这个页面的文章做的,做一个flash,然后flash调用test.asp文件,但我一看ParID是从哪儿得到的,是不是通过另一asp页面提交查询参数给这个flash呢。

谢谢
thornet 2003-07-18
  • 打赏
  • 举报
回复
偶倒~`````不会吧,这个parID是ASP中的一个变量名,你看看ASP的相关教程就明白了
wchunge 2003-07-18
  • 打赏
  • 举报
回复
parID=Request.QueryString("ID") '获取ASP参数ID


这句代码为什么出错?从哪儿得到parID
whose 2003-07-17
  • 打赏
  • 举报
回复
几天没来, thornet(THOR) 兄弟整个个完全攻略,
帮你顶一下,
建议最好用一个帖,帖完全部攻略,免得一个个找,要不我开个收集帖。


up
uuncv 2003-07-17
  • 打赏
  • 举报
回复
up
gang75 2003-07-17
  • 打赏
  • 举报
回复
up
5097QQ 2003-07-17
  • 打赏
  • 举报
回复
up
geniuskf 2003-07-16
  • 打赏
  • 举报
回复
UP
thornet 2003-07-16
  • 打赏
  • 举报
回复
自己再顶!
geniuskfkf 2003-07-15
  • 打赏
  • 举报
回复
真的假的哦?
为什么我也是希望的那本
可是

<%="aspRect=Hello! Macromedia FlashMX 6.0"%>

aspRect这个变量没定义,希望上面的是用Dim定义了的(不知道是不是定义的意思)。不定义一样的用么?
引号里的东西不需要括号括起来的吗???希望的怎么括起来了?

最奇怪的是我怎么弄为什么都无法显示出Macromedia FlashMX 6.0????
PrecisionSoft 2003-07-15
  • 打赏
  • 举报
回复
真是好东西呀,简练!一看就懂了。比我看希望的fmx的网页编程宝典几个星期都强,净是dw写出来的垃圾代码,看起来晕死
geniuskfkf 2003-07-15
  • 打赏
  • 举报
回复
突然发现作者

<%
Response.write "aspRect=Hello! Macromedia FlashMX 6.0"
%>
<%="aspRect=Hello! Macromedia FlashMX 6.0"%>
这两句是吧“=”和“Response.write”替换了,只怪我自己看的不仔细

“aspRect=”这个是什么意思????是把那些语句赋值给变量aspRect?

我看了三遍才看明白了,跟书上的不一样,能不能示范如果多个变量怎么赋值?用一个语句~



geniuskfkf 2003-07-15
  • 打赏
  • 举报
回复
为什么不显示???
<%
Response.write "aspRect=Hello! Macromedia FlashMX 6.0"
%>
这个不能直接显示在叶子上的吗????
yanxiumei 2003-07-15
  • 打赏
  • 举报
回复
让你好看点.
我帮你UP啦
geniuskfkf 2003-07-15
  • 打赏
  • 举报
回复
<%
Response.write "aspRect=Hello! Macromedia FlashMX 6.0"
%>

我顺便补充下如果只有一句ASP
可以简写成
<%=
"aspRect=Hello! Macromedia FlashMX 6.0"
%>

即用“=”,代替“Response.write”

↑前天看书上面写的

谁还有什么技巧什么的写出来啊,让我学学

我顺便问下作者
<%="aspRect=Hello! Macromedia FlashMX 6.0"%>
这里最前面的一个等号跟aspRect=是配套的么???还是有什么特殊含义或者也是什么的简写?
我没学过ASP所以不知道,请问哪里有这种语句功能的字典下载???我也好自己翻~~~
或者告诉我怎么查也行
fivestars070 2003-07-15
  • 打赏
  • 举报
回复
踹一脚!
加载更多回复(14)

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧