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

thornet 2003-07-15 05:32:33
第3卷 FlashMX数据库高级间接连接方法
原创: THOR (转载者请保留“作者:THOR”等字样,QQ 488915,Email coolthor@163.com)
声明: 对ActionScript和ASP不感兴趣者以及认为FLASH只能做动画片者,请Get OUT!
留言: 呵呵,本人初来乍到,希望大家多多支持,要是写了文章能加专家分就好了:)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在前面的文章已经给大家讨论了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会自动运行ReadAspRect函数
ASP.sendAndLoad("ASP文件地址",ASP,"GET"); //使用GET方法发送参数,并从ASP中返回其运行结果

大家看到这里应该已经了解了LoadVars对象的基本用法,我们在下一卷中将向大家详细举例LoadVars对象的中文、数据库操作以及相关经验和技巧~```

呵呵,本系列文章的代码免费公布,只要求大家给俺多加点分,俺就满足了,呵呵,多多益善~``` ^_^,(需要本卷实例源码者请拿20分换),对了,大家记得多顶一下


:::: [第3卷完] :::: [待续] ::::
...全文
58 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
beggarofbeggar 2003-07-24
  • 打赏
  • 举报
回复
mark
fivestars070 2003-07-24
  • 打赏
  • 举报
回复
支持支持支持支持支持支持支持支持支持支持支持█████████支持支持
支持支持支持支持支持支持支持支持支持███████████████支持
支持支持支持支持支持支持支持无██████████████████支持
支持支持支持支持支持无████████████████支持支持支持支持
支持支持支持支持███████无███支持█████支持支持支持支持支
支持无████████████支持支持支持████支持支持支持支持支持
无██████████████支持支持支持████支持支持支持支持支持
无████████████支持支持支持无███████████支持支持
无████████████支持支持支持██████████████支持
支持██████████支持支持无██████支持无███████支持
支持支持支持支持████支持支持无████支持支持支持█████支持支
支持支持支持支持████支持支持████支持██支持无█████支持支
支持支持支持支持████支持支持████支持████无█████支持支
支持支持支持支持████支持支持████支持████无█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████支持███支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持████无████支持█████支持支
支持支持支持支持████支持支持███支持████支持█████支持支
支持██支持无█████支持支持███支持███支持无█████支持支
支持██████████支持支持无██支持██支持支持█████支持支
支持无█████████支持支持支持支持███支持支持无████支持支
支持支持无███████支持支持支持支持███无████支持支持支持支
支持支持支持██████支持支持支持无████支持█████支持支持支
支持支持支持支持无███支持支持支持█████支持无███████支持
支持支持支持支持支持支持支持支持██████支持支持无██████支持
支持支持支持支持支持支持支持无██████支持支持支持███████支
支持支持支持支持支持支持支持█████支持支持支持支持无██████支
支持支持支持支持支持支持无█████支持支持支持支持支持无████支持
支持支持支持支持支持支持███支持支持支持支持支持支持支持无███支持
whose 2003-07-17
  • 打赏
  • 举报
回复
几天没来, thornet(THOR) 兄弟整个个完全攻略,
帮你顶一下,
建议最好用一个帖,帖完全部攻略,免得一个个找,要不我开个收集帖。


up
uuncv 2003-07-17
  • 打赏
  • 举报
回复
up
gang75 2003-07-17
  • 打赏
  • 举报
回复
up
geniuskf 2003-07-16
  • 打赏
  • 举报
回复
UP
thornet 2003-07-16
  • 打赏
  • 举报
回复
自己再顶!
thornet 2003-07-16
  • 打赏
  • 举报
回复
呵呵,我也不是一定要大家跟多少分才继续写的,只是要求大家可能的话多给俺点分就行了,各位自愿,主要目的还是为了能尽量普及一下全FLASH风格的网站而已
PrecisionSoft 2003-07-16
  • 打赏
  • 举报
回复
to:yanxiumei
颜学梅?呵呵,出那么高的价干嘛,为什么不等thornet给我发了后再找我要,给我10分都给你发。

to:thornet
抽个休息时间多写点出来,一段一段的不过瘾,(另:我多给100分,以后的代码都要,最好完整一点)
看起来我得多来这里逮分,要是按老大你的长久(到年底,寒………)打算,要掏不起学费了(玩笑)
yanxiumei 2003-07-15
  • 打赏
  • 举报
回复
嗯,那更好嘛,年底一次算清,分还更多呢,因为每天来登陆一次就有十分的。
哈哈你赚死了~~~~~~~~~~~````
我也再弄个号出来,
嘿嘿。
年底也一定很多分了。
好聪明
thornet 2003-07-15
  • 打赏
  • 举报
回复
自己UP了
thornet 2003-07-15
  • 打赏
  • 举报
回复
我估计以后的文章会一篇比一篇长的,所以花的时间也会越来越多,所以大家要代码的还是一个一个的来吧,没准要等到年底才能全部写完的
nba23 2003-07-15
  • 打赏
  • 举报
回复
不错
thornet 2003-07-15
  • 打赏
  • 举报
回复
呵呵,我也不是在这里卖代码,只是想在这里让大家多了解一下FLASH的功能,普及一下整版FLASH的网站,所以才写这些文章,顺便多弄点分就算作是咱的稿费了
geniuskfkf 2003-07-15
  • 打赏
  • 举报
回复
我靠,给位别把价格抄的那么高
你要我怎么活啊
申请一个新号就需要一个邮箱,才200多分
1400不是要7个号,我哪来那么多邮箱??
中国的彩电就是被象你们这样的人弄的恶性竞争的
55555555555,一点都不考虑穷人
我也要源代码
thornet 2003-07-15
  • 打赏
  • 举报
回复
全写完的话可能还得花上点时间哦,一个一个的来吧,毕竟我也不是每天都有空的
yanxiumei 2003-07-15
  • 打赏
  • 举报
回复
再加400
1400可以吗?
yanxiumei 2003-07-15
  • 打赏
  • 举报
回复
记得别把源码给删了,等你全完了,我再一起拿过来,OK?
给的份是1000,不知道够没?(我现在就这么点)
thornet 2003-07-15
  • 打赏
  • 举报
回复
你新开一个贴子,点上面的提问,然后在给分中填入100,然后填标题和内容,然后点提问按钮,然后你收到我的邮件和回贴之后,点这个贴的管理,也就是结贴咯~```
PrecisionSoft 2003-07-15
  • 打赏
  • 举报
回复
LoadVars.sendAndLoad的用法我看的真晕,老大赶快说一下我怎么才可以给分,我得要代码仔细看看!
加载更多回复(2)

2,275

社区成员

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

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