最近更新 / 特别专题 / 我要上传 / 设为首页
满足眼睛的需求

频道精选


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

2007-06-05 来源:xuezhishi.com   内容报错                        

本卷将和大家讨论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语句  ^_^  

评论 点击查看
 

精彩图片