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

频道精选


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

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

           在前面的文章已经给大家讨论了FLASH间接操作数据库的原理和基本方法(LoadVariables语句),本卷将向大家讲述比LoadVariables更强大的LoadVars对象的使用方法  
 
/*  -----------------------------------------  
闲聊:记得有次和Whose一起回答别人关于FLASH操作数据库的问题时提到了LoadVariables,在我的回答中我一时忘了LoadVariables这个语句的字母拼写,所以只写了LoarVar...,Whose就问我是不是要别人自由发挥,呵呵,其实是我自己忘了这条语句,因为我已经实在记不起来我有多久没用这条语句了,因为后来都是用LoadVars和其它方法来操作数据库了。相信大家在掌握了LoadVars之后也会扔掉LoadVariables  
------------------------------------------*/  
 
           好了,言归正传,我们现在在开始LoadVars对象之前,再次讨论一下关于ASP中的写法(其它脚本语言如此类推,如ASPX,CGI,PHP等),在前面的文章中我们已经强调了要求在ASP中去掉所有的HTML标记,也就是说不要在ASP中写下任何<html>、<body>、<B>、<A>……等,只能在ASP中写下<%和%>之间的纯ASP脚本,以保证ASP最后的运行结果是:(无空格)  
变量名1=值1  &  变量名2=值2  &  变量名3=值3  &  变量名4=值4  ……  
 
           也就是说,在ASP中要保证最后的结果是每个变量名(并非ASP中的变量,而是传达到FLASH中的FLASH变量),然后再是一个等号,接着再写这个变量的值(如果这个值中需要空格的话,用+号代替),在ASP中输出结果的方法可以是  
<%="..."%>,也可以是<%Response.write  "..."%>,两种方法都可以,只是随大家习惯而已,这两种方法对于经常用ASP的朋友来说再熟悉不过了,不过有一点要说明的就是我们在ASP中提倡使用<%="..."%>的方法来输出结果,但我们现在在编写为FLASH服务的ASP文件时,我建议大家还是用<%Response.write  "..."%>方法,因为在我们需要的这种ASP文件中是无任何HTML标记的,所以<%Response.write  "..."%>比<%="..."%>更直观,我们举例来说:  
<%  
           dim  a1,a2,a3,strOutput  
           a1="Fireworks"  
           a2="Dreamweaver"  
           a3="Flash"  
           strOutput="a1="  &  a1  &  "&a2="  &  a2  &  "&a3="  &  a3  
 
           response.write  strOutput  
%>  
 
这样的话,当FLASH装载了这个ASP的运行结果之后就会在FLASH中生成a1,a2,a3三个变量,并且自动给这三个变量赋值为"Fireworks","Dreamweaver","Flash",然后我们就可以使用其它的FLASH语句来使用或操作这三个变量。  
 
           在大家再次熟悉了ASP的书写方法之后,我们现在就要开始LoadVars对象了,LoadVars对象的原理和LoadVariables类似,也是通过读取文本文件或者ASP等文件的结果,来给FLASH中的变量赋值,但LoadVariables没有回调功能,所以需要建立循环来判断是否已经将结果读入了FLASH,这一点是比较麻烦和低效的,在LoadVars中就不会再如此做了,因为LoadVars在读完了结果之后会自动产生事件,然后通过这个事件我们就已经知道这次的读入已经完成,而且在LoadVars中还可以实现读取进度、仅发送参数、发送参数并回调结果、仅回调结果等多种功能,并且LoadVars除了读取文本文件和ASP等文件结果之外,还另有妙用(这一功能是我瞎胡弄出来的,此功能足以让大家惊讶,呵呵,俺得先留着这个功能多卖点分才行,大家别砸我哈,下部中自然为给大家讲的)  
 
           我们先从FLASH的帮助中复制它的属性、方法和事件过来参考一下,我们在本卷中只用关心下面这些内容就行了:  
 
           代码                                                类型                                                  说明  
             LoadVars.load                                    方法                                                  从指定的  URL  下载变量。  
             LoadVars.send                                    方法                                                将变量从  LoadVars  对象发布到  URL。  
             LoadVars.sendAndLoad                        方法                                                  将变量从  LoadVars  对象发布到  URL,并将服务器的响应下载到目标对象。    
   
           LoadVars.onload                        事件                                                当LoadVars对象完成  load  或  sendAndLoad  等操作时产生。  
 
           我们在使用这些方法和事件之前需要先将LoadVars实例化,代码如下:  
           ASP=new  LoadVars();            //格式是:            实例名=new  LoadVars();            <--此例中我用的实例名是ASP(实例名的命名和变量名相同,呵呵,顺便告诉大家,在FLASHMX6,可以用中文的变量名和实例名,呵呵,好玩吧,比如说:            后台=new  LoadVars();)  
           好了,我们现在已经创建了一个LoadVars对象的实例,实例名称用的是"ASP",接下来我们开始研究LoadVars的三种方法Load,Send和SendAndLoad:  
           我们从第一种方法开始,Load的功能是不向ASP发任何参数,直接运行ASP,并将ASP的运行结果收入FLASH;  
           而第二种方法是首先将参数发向ASP,然后打开ASP文件页面,并执行它,这样的话,我们可以用FLASH做些比如论坛登陆窗口之类的东东  
           最后第三种方法SendAndLoad也就是我们以后做全版FLASH网站时要经常使用的方法,它是首先将参数发给ASP,然后执行ASP并将执行结果读回到FLASH中来。  
           注意:Load和SendAndLoad中运行ASP文件时,访问者并不会看到ASP的页面(可以说是后台运行的)  
 
           三种方法的代码编写基本类似,由于篇幅字数的限制,我们只讨论其中的SendAndLoad方法,此方法需下面这些步骤完成:  
           第1步:LoadVars实例化  
           第2步:添加ASP所需参数  
           第3步:设置回调函数  
           第4步:使用SendAndLoad指令  
 
           第1步在上面我们已经说过了,现在我们来说一下第2步。所谓的“添加ASP所需参数”也就是一些ASP中,如用户登录信息验证,分类数据列表等等都需要从POST或者GET中获取相关参数,如果要在ASP中获取POST参数的话,用Request.form("参数名")就可以了,如果是要在ASP中获取GET参数的话,那就得用Request.QueryString("参数名"),例如下面的ASP代码:  
<%  
           ''检查用户登录  -  GET方法参数  
           dim  strUser,strPass,strOutput  
           strUser=Request.QueryString("user")  
           strPass=Request.QueryString("pass")  
 
           if  strUser="THOR"  and  strPass="abc"  then  
                       strOutPut="Yes"  
           else  
                       strOutput="No"  
           end  if  
           response.write  "aspRect="  &  strOutput  
           ''本例只是演示参数的使用,所以没用到数据库,当然在正式的项目应用中的用户登录参数,大家可千万别用GET方法的参数,得用POST才行  
%>  
 
我们接着开始在FLASH中为这个ASP写添加参数的代码  
           function  ReadAspRect(){            //创建一个名称为ReadAspRect的函数,此函数将用来分析ASP的返回结果  
                       trace(this["aspRect"]);            //弹一个窗口出来显示aspRect变量的值  
           }  
 
           ASP=new  LoadVars();                        //创建一个名称叫做ASP  (当然也可以用其它名称)  的LoadVars对象实例  
           ASP.user="THOR";                        //添加一个值为"THOR"的参数,参数名是user,对应ASP中的user参数  
           ASP.pass="abc";                        //添加一个值为"abc"的参数,参数名是pass,对应ASP中的pass参数  
           ASP.OnLoad=ReadAspRect;            //设置回调函数为ReadAspRect,当ASP结果装载完毕时,FLASH会自动运行R

评论 点击查看
 

精彩图片