|
★ASP中基本的输入输出<br> <%@LANGUAGE="JAVASCRIPT"%> <% var neirong; //获取从FLASH传递过来的变量 neirong=Request("neirong_flash"); //输出要返回到FLASH中的内容 Response.Write("&fanhui_asp=哈,你输入的内容已经传递给ASP,并且又已经从ASP返回到FLASH了,你输入的内容是:"+neirong); %> 5,最后把“lv_shiyan.fla”中的代码改成下面的内容: System.useCodepage = true; var shiyan_lv = new LoadVars(); tijiao_btn.onRelease = function() { //获得输入的文本内容,并把这个内容记录在变量“neirong_flash”中 //这里相当于已经对变量“neirong_flash”进行了赋值 shiyan_lv.neirong_flash = shuru_txt.text; //将LV对象中储存的所有变量都传递给ASP,不过这里我们只设定了一个,就是我们的“neirong_flash” //向ASP传递成功后,我们再把从ASP传递回来的变量还储存在“shiyan_lv”对象中 shiyan_lv.sendAndLoad("asp_jichu.asp?bianliang="+random(9999), shiyan_lv, "post"); }; shiyan_lv.onLoad = function(chenggong) { if (chenggong) { //输出文本内容 shuchu_txt.text = shiyan_lv.fanhui_asp; } else { //输出文本内容 shuchu_txt.text = "加载失败"; } };
呼呼,改的东西真不少啊,先不讲代码了,直接发布测试一下吧,先有个直观的认识:在输入文本框中输入“我要做FLASH留言板”,然后点击提交按钮,你就会看到在动态文本框“shuchu_txt”中马上就会显示:“哈,你输入的内容已经传递给ASP,并且又已经从ASP返回到FLASH了,你输入的内容是:我要做FLASH留言板”。这个例子的源文件也可以直接在下面下载。
小提示:如果你在浏览器中直接点击刷新不能正确显示更新后的页面和内容,请按如下方式设置IE浏览器:→工具→Internet选项→设置→钩选“每次访问此页时检查”。这样我们以后就可以直接利用刷新来测试,不用再担心IIS刷新和内存问题了。
最后我们来对测试过程中的数据流程做一个系统的分析:
- 用户在FLASH的输入文本框“shuru_txt”输入“我要做FLASH留言板”
- 通过“shiyan_lv.neirong_flash = shuru_txt.text;”这句代码把用户输入的内容储存在“shiyan_lv”对象的“neirong_flash”
- 通过“shiyan_lv”对象的“sendAndLoad”方法将它记录的变量都传递给指定的ASP文件
- 在ASP文件中通过“neirong=Request("neirong_flash");”这句代码获得从FLASH的“shiyan_lv”对象传递过来的变量“neirong_flash”
- ASP接收变量内容后调用Response对象的Write方法利用传递过来的变量内容以“变量/值”配对的格式输出需要返回FLASH的新内容
- FLASH在调用“shiyan_lv”对象的“sendAndLoad”方法发送变量时就已经指定“shiyan_lv”本身接收返回的内容
- “shiyan_lv”接收到新返回的内容,并根据其“变量/值”配对的格式,将新内容储存在“shiyan_lv.fanhui_asp”中
- 当新返回的内容在FLASH中加载完成后,调用“shiyan_lv”对象的onLoad事件
- 通过“shuchu_txt.text = shiyan_lv.fanhui_asp;”这句代码在输出文本框中显示新返回的内容
经过这个分析,相信大家应该可以从总体上有一个理性的认识了吧。
最后还需要重点强调的几点是:
- LV对象在调用“sendAndLoad”方法发送变量的时候,会把LV对象中储存的所有变量都发送给ASP。
- ASP在接收LV对象传递过来的变量时,只需要在Request中使用与FLASH中相同的变量名字就可以了。
- ASP输出的资料一定要使用“变量/值”配对的格式,因为只有输出成这种格式,FLASH才能像处理TXT一样将ASP输出的资料分别记录在几个变量并保存在指定接收资料的LV对象中。
- 如果我们想向FLASH传递两个或者更多变量,我们可以在FLASH中这样写:(以传递三个变量为例)
shiyan_lv.bianliang1_flash="bianliang1"; shiyan_lv.bianliang2_flash="bianliang2"; shiyan_lv.bianliang3_flash="bianliang3"; shiyan_lv.sendAndLoad("asp_jichu.asp?bianliang="+random(9999), shiyan_lv, "post");
- 传递大量资料时,必须使用POST方法。
- 如果我们想在FLASH中接收到多个从FLASH传递过来的变量,就按TXT的处理方式来就OK了。
呼呼,喘口气,这一节终于写完了。本来计划下次直接写“LV与ASP综合运用”的,但现在想想,还是很有必要加上一节“ASP操作数据库入门”,请继续关注。有什么好的意见也可以提一下,希望通过大家的共同努力让这篇教程能让菜鸟以最快的速度,最少的障碍自己制作出真正属于自己的FLASH留言板。
还记得我们向ASP传递的那个无意义的变量“bianliang”吗?既然我们向ASP传递了,那ASP就应该能接收的到,有兴趣的朋友可以在“asp_jichu.asp”中加一个接收变量的语句,测试一下效果。改动后的ASP代码如下:
★ASP中基本的输入输出<br> <%@LANGUAGE="JAVASCRIPT"%> <% var neirong; var canshu; //获取网址中变量的内容 neirong=Request("neirong_flash"); //获取无意义的参数 canshu=Request("bianliang"); //显示变量内容 Response.Write("&fanhui_asp=哈,你输入的内容已经传递给ASP,并且又已经从ASP返回到FLASH了,你输入的内容是:"+neirong+"。你传递的无意义的参数是:"+canshu); %>
测试后发现真的可以接收到一个数字呢,而且每次点提交这个数字几乎都不一样,在0-9999之间变化。看来我们确实接收到FLASH传递过来的随机变量了,可传递的时候,地址栏里怎么没显示呢?是因为这次我们采用了“POST”传递方式,这种方式用来传递大量资料,是不会在地址栏中显示变量和它的值的。
FLASH与ASP交互实例:demo01.rar
经过前几节的学习,我们对LV类和ASP的输入输出应该已经很熟练了吧,而且我们也已经了解了LV与ASP通讯的基本原理。这个原理可能并不复杂,不过如果你想利用它做出点东西来,关键还是要看你ASP和FLASH的基本功了。遗憾的是这篇教程主要讲述FLASH与ASP通讯原理,更详细更高级的ASP和FLASH技巧,我恐怕不能多讲,不然这篇教程不知道什么时候才能写完,同时也会失去重点。这节我将简单的罗列一些ASP操作ACCESS数据库的基本知识,注意,我只是点到为止,更详细的资料和讲解网上很多,你可以自己去搜索。
首先我们需要建立一个ACCESS数据库文件,命名为“shujuku.mdb”,并在其中新建数据表,命名为“shujubiao”。数据表中字段名称、字段类型和字段内容如下图所示。示例的数据库可以在最后下载,下载后请保存起来,因为我以后的讲解都会用到它。


然后在数据库同文件夹下建立一个操作数据库的ASP文件,命名为“caozuo.asp”,并输入以下代码:
<%@LANGUAGE="JAVASCRIPT"%> <% //建立一个数据库链接对象 lianjie = Server.CreateObject("ADODB.Connection"); //用已经建立的数据库链接对象打开数据库 lianjie.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("shujuku.mdb")); //创建一个“记录集”,即“Recordset”,它的任务是储存从数据库里提取出来的数据 rs = Server.CreateObject("ADODB.Recordset"); //创建查询数据库的SQL语句,这里将查出“shujubiao”中的所有数据 sql="select * from shujubiao"; //执行数据库查询,最后的数字参数主要用来指定打开和查询数据库的方式,有兴趣可以百度一下 rs.Open(sql, lianjie, 3); %>
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页 |