您的位置: 首页 > 技术文档 > 多媒体制作 > FLASH与ASP通信原理入门
使用 Flex 上传文件 回到列表 FLASH基础开发习惯
 FLASH与ASP通信原理入门

作者:jimohuoshan 时间: 2006-12-14 文档类型:原创 来自:蓝色理想

第 1 页 简介
第 2 页 LV类基础讲解
第 3 页 ASP中基本的输入输出
第 4 页 LV与ASP通讯原理
第 5 页 ASP操作数据库入门
第 6 页 LV与ASP综合运用之一
第 7 页 LV与ASP综合运用
第 8 页 其它通讯方式原理浅谈

这节是重点,我写教程的还不怕长呢,大家也要坚持住啊!这节将对前面讲过的知识进行一个综合运用。下面先回顾一下前面我们都掌握了哪些技能:

1,LV与外部文本文件通讯的基本原理(变量/值配对)
2,ASP如何接收变量以及输出内容(Request和Response)
3,LV与ASP通讯基本原理(依旧是变量/值配对原理)
4,ASP操作数据库基本技巧,包括:
  ①如何查询并显示数据表内容
  ②如何删除一条记录
  ③如何添加一条新记录
  ④如何更新一条记录
  ⑤如何显示记录的总条数
  ⑥如何分页,翻页,以及显示总页数,当前页码和当前页内容

现在请闭上眼睛想一下,一个简单的FLASH留言本所包含的内容不就这么多吗?如果我上面讲的内容你都掌握了,还有什么理由不能自己做一个留言板呢——什么?你没有实战经验?好吧,这节我就连你这唯一的理由也消灭掉。这节中我将通过一个LV和ASP交互实例把上面讲的内容来一个融合。请大家先下载我提供的源文件,其中包含五个文件:zonghe.fla、zonghe.swf、zonghe.html、zonghe.asp还有上节中提供的数据库文件shujuku.mdb。这是已经做好的成品,大家不妨先删除“zonghe.fla”AS贞和“zonghe.asp”中的所有代码,跟着我的讲解再一起来完成它,这样你会有更系统更深刻的认识。在此之前,你还非常有必要先在源文件中熟悉一下“zonghe.fla”里的界面布局及元件命名。为了方便讲解,这里同时贴出“zonghe.swf”的界面图示:

下面我们来逐步演示各项功能,首先是显示记录内容及相关信息。

第一步:打开“zonghe.fla”,在最上层的AS贞中写代码:

//================系统初始化=================
//——————界面初始化
//——————变量初始化
//——————数组初始化
//——————对象初始化
//================逻辑功能区=================
//================函数模块区=================

上面是我的习惯,先用注释把代码分好区,然后逐步向各区中添加需要的代码。

第二步:“显示”记录功能测试:
我个人习惯是:前台界面→后台单独完成→前台功能实现加后台合成,所以先写后台。

1,在“zonghe.asp”中添加以下代码:

<%@LANGUAGE="JAVASCRIPT"%>

<%
//建立数据库链接对象       
lianjie = Server.CreateObject("ADODB.Connection");
//打开数据库
lianjie.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("shujuku.mdb"));
//创建“记录集”
rs = Server.CreateObject("ADODB.Recordset");
//设置一个选项变量,根据这个选项的值,来决定执行对应功能的代码,这个变量来自FLASH
var xuanxiang=Request("xuanxiang_flash");
%>

<%
//——————根据变量“xuanxiang”决定调用对应的函数
//查询显示记录演示
if(xuanxiang=="显示"){
  xianshi();
}
%>

<%
//——————定义“显示”的功能函数
function xianshi(){
//查询的SQL语句
sql="select * from shujubiao";
//执行数据库查询
rs.Open(sql, lianjie, 3);
//从FLASH接收当前页码
var dangqianye=Request("dangqianye_flash");
//从FLASH接收每页显示的记录条数
var meiyejilu=Request("meiyejilu_flash");
//声明一个变量用来存储要输出的内容,初始为空
var shuchuneirong="";
//设置每页显示的记录条数
rs.PageSize=meiyejilu;
//设置当前显示的页码
rs.AbsolutePage=dangqianye;
//获取记录总条数
var zongtiaoshu=rs.RecordCount;
//获取总页数
var zongyeshu=rs.PageCount;
//利用循环显示一页的所有内容,具体的页码在第二段代码的“rs.AbsolutePage”中指定了
for (i=0;i<meiyejilu;i++){
  if(!rs.EOF){
  //获取字段内容
  var xuhao=rs("xuhao");
  var xingming=rs("xingming");
  var yuwen=rs("yuwen");
  var shuxue=rs("shuxue");
  //将要显示的内容记录在“shuchuneirong”中
  shuchuneirong =shuchuneirong+"<br>序号:"+ xuhao +" | 姓名:"+xingming+" | 语文:"+yuwen+" | 数学:"+shuxue;
  rs.MoveNext();
  }
}
//将查询出来的内容输出成变量/值配对形式
Response.Write("&neirong_asp="+shuchuneirong);
//输出总条数
Response.Write("&zongtiaoshu_asp="+zongtiaoshu);
//输出总页数
Response.Write("&zongyeshu_asp="+zongyeshu);
}
%>

<%
//关闭记录集对象
rs.Close();
//关闭连接对象
lianjie.Close();
%>

说明:上面的代码有点长,大家不要害怕,其似都是前面一节讲过的东西。
代码一共有四段:第一段声明使用JS脚本;第二段主要是一些初始化,最后一句比较重要,变量“xuanxiang”将决定下面调用那个函数以执行对应的功能。第三段是逻辑功能区,根据变量“xuanxiang”决定调用那个函数;第四段是定义的“显示”函数,用来显示页码、记录条数和记录内容的,而且最后还以“变量/值”配对的形式输出它们,以便于返回FLASH。需要提示的是,这段代码中最开始“每页记录数”和“当前页”是从FLASH传递过来的;最后一段代码用来关闭记录集对象和数据库连接。在后台代码中,最重要的是,我们要明白哪些变量是要从FLASH传递过来的,哪些又是需要返回FLASH的。为了避免混淆,我一般把从FLASH传递给ASP的变量后加“_flash”,而从ASP返回FLASH的变量后则加“_asp”后缀。

2,后台有了,回到FLASH中继续我们的代码吧,打开“zonghe.fla”,输入以下代码:

//================系统初始化=================
//——————界面初始化
//编码
System.useCodepage = true;
//——————变量初始化
//声明一个“选项”变量,ASP中将根据这个变量决定当前演示的是那项功能
//初始化这个变量为“显示”,用来显示记录
var xuanxiang = "显示";
//当前页初始为第1页
var dangqianye = 1;
//每页记录数初始为5条
var meiyejilu = 5;
//——————数组初始化
//——————对象初始化
//LV对象,从上到下依次用于“显示”,“删除”,“添加”,“更新”演示
var xianshi_lv = new LoadVars();
var shanchu_lv = new LoadVars();
var tianjia_lv = new LoadVars();
var gengxin_lv = new LoadVars();
//================逻辑功能区==================
//——————显示功能测试
xianshi();
//================函数模块区==================
//——————“显示”功能
function xianshi() {
  //LV对象获取“选项”内容
  xianshi_lv.xuanxiang_flash = xuanxiang;
  //获取“当前页”
  xianshi_lv.dangqianye_flash = dangqianye;
  //获取“每页记录数”
  xianshi_lv.meiyejilu_flash = meiyejilu;
  //将以上获取的内容传递给FLASH
  xianshi_lv.sendAndLoad("zonghe.asp?bianliang="+random(9999), xianshi_lv, "post");
  //加载完成后显示一系列相关信息
  xianshi_lv.onLoad = function(chenggong) {
    if (chenggong) {
      //显示当前页(直接从FLASH获得)
      dangqianye_txt.text = dangqianye;
      //显示每页记录数(直接从FLASH获得)
      meiyetiaoshu_txt.text = meiyejilu;
      //显示总条数,总页数和本页的记录内容
      zongtiaoshu_txt.text = xianshi_lv.zongtiaoshu_asp;
      zongyeshu_txt.text = xianshi_lv.zongyeshu_asp;
      neirong_txt.htmlText = xianshi_lv.neirong_asp;
    } else {
      neirong_txt.htmlText = "加载失败!";
    }
  };
}

说明:AS中的代码不难理解,首先是“界面初始”,我定义了需要传递给ASP的三个变量“选项”,“当前页”,“总页数”。另外我还声明了四个用于各种功能演示的LV对象,以备下面需要。“逻辑功能区”的代码非常简单,只有一句函数调用,这正是逻辑区的精髓,通过简洁的代码清晰的反映功能逻辑。代码最多的是“函数模块区”,这里定义的是“显示”函数,注意它的数据流程,首先它将“选项”,“当前页”和“每页记录数”记录在LV对象中,然后通过LV对象的sendAndLoad方法将这些信息发送给ASP,ASP接收到后,根据这些信息正确的输出需要的内容,这些内容遵循“变量/值”配对规则,最后FLASH通过LV对象又接收到这些返回的内容,并在接收成功后,在指定的动态文本框中显示它们。

我们可以在IIS下运行一下“zonghe.html”看看效果,我们会看到正确页码信息,当前页显示为1,“neirong_txt”文本框中显示第一页的内容。有兴趣的朋友可以自己在“zonghe.fla”中修改一下“dangqianye”和“meiyejilu”两个变量,看看显示结果有什么变化,思考一下导致这些变化的规律又是什么。

今天就到这儿吧,建议大家多动动手,自己试验一下看能不能仅利用一个ASP文件,就把“删除”,“更新”和“添加”功能都实现了。其实它们的原理跟“显示”是相通的。等明天我写完下一节,大家再看看自己写的代码和我的有什么不同,也许会发现更多问题:)大家跟我一起加油吧!

LV与ASP综合运用之一demo03.rar

出处:蓝色理想
责任编辑:moby

上一页 ASP操作数据库入门 下一页 LV与ASP综合运用

◎进入论坛Flash专栏版块参加讨论

相关文章 更多相关链接
使用 Flex 上传文件
FLASH基础开发习惯
用background 插入flash播放器
网页中嵌入Flash的方法讨论
asp检测文件编码
作者文章
FLASH基础开发习惯
用纯AS写滚动条
关键字搜索 常规搜索 推荐文档
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:6/81个记录/页 转到 页 共8个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2