flash与后台数据交换方法整理1-LoadVars篇
发布:kinglong | 发布时间: 2006年2月15日P.S
最近有一些网友总是询问flash与后台数据交互的问题,因此我就做了一些总结和整理,也想方便大家了!
目前据我所知,Flash与后台数据交互共有下列几种方法(如果你觉得不全,你可告知一下,我会添加上去了):
1.LoadVars(XML)
2.Flash Remoting
3.Webservice
4.XMLSocket
一.LoadVars篇
我之所以把XML也放在这里说,是因为XML和LoadVars数据交互的方式大体相同,就是传递时的数据内容有点不一样而已!
我现在列出在开发过程最常用的"用户密码验证"实例,加以说明!
| //=======================================================; // Flash代码; //=======================================================; //定义LoadVars对象; var data_lv = new LoadVars(); //提交的用户名变量和参数值; data_lv.username = "kinglong"; //提交的密码变量和参数值; data_lv.password = "king"; //提交后返回结果; data_lv.onLoad = function(success){ //success,数据提交是否成功; //这个只是表示数据传输是否成功,并不是用户验证的结果; if(success){ trace("数据提交成功!"); //result也是用户验证返回的实际结果! if(this.result=="true"){ trace("yes"); }else{ trace("no"); } }else{ trace("数据提交失败!"); } } //数据提交方法调用; //第一参数就是提交的页面地址; //第二参数就是返回结果对象(只要是LoadVars对象就可以了); //第三参数就是提交方式(这个和html中form表单类似,分为"post"和"get"两种方式) data_lv.sendAndLoad("http://www.klstudio.com/save.asp",data_lv,"post"); |
//=======================================================; |
LoadVars方式的优点:
1.flash代码实现起来简单,方便.
2.服务端接收页面和接收一个表单过来的数据一样处理,不需要专门的技术,所有服务端程序都可以实现!
LoadVars方式的缺点:
1.传递的变量不宜过多.
2.变量传递的值不宜过长.
3.变量传递值只能使用"字符串"这一种数据类型,数据类型单一.
4.数据返回值当中不能有"&"字符,因此比较复杂的返回值都需进行URL编码处理.
下次就再整理一下Flash Remoting的相关方法
- 相关文章:
仿flash组件事件侦听注册技术的基类-KEvent (2006-2-8 15:47:45)
恢复天气预报服务,与原来的不兼容 (2006-2-7 9:36:23)
FlashCom 连接器 (2006-2-5 16:34:38)
Flash的查看对象的方法-printObj (2006-2-5 16:15:7)
终于可以学习和开发flash lite 2.0的程序了 (2006-1-4 15:27:55)
最近刚完成的flash视频项目 (2006-1-4 15:24:2)
更新Flash视频服务端技术 (2005-12-1 15:20:22)
flash视频服务端应用开发 (2005-11-22 14:48:56)
更新Loading组件 (2005-11-9 15:28:47)
从AS2.0到AS3.0 (2005-10-18 15:34:1)
- 3.Awflasher
- http://www.awflasher.com/blog
- 这么好的教程你说是骗人的……唉!唉!唉!
- 2006-2-15 17:34:26 回复该留言
- 4.doublewoods
- 学习了。。。。。。。。。。
- 2006-3-1 13:41:44 回复该留言
- 5.5irj.com
- http://www.5irj.com
- 对于你写的这个我提出反对意见:
LoadVars方式的缺点:
1.传递的变量不宜过多.
2.变量传递的值不能过长.
3.变量传递值只能使用"字符串"这一种数据类型,数据类型单一.
4.数据返回值当中不能有"&"字符,因此比较复杂的返回值都需进行URL编码处理.
返回的参数里可以带 & 数据量我达到几万字符也可以加载进来,数据类型到还只能是字符串的 - 2006-3-14 16:31:23 回复该留言
- 6.kinglong
- http://www.klstudio.com
- 是可以很长,但不建议那么做!是我用词不对(应该说是"不宜过长")!不过也谢谢你给我及时纠正了!
- 2006-3-14 20:09:24 回复该留言
- 7.N神
- http://www.nshen.net
- 我目前就用这个。。。感觉这个最方便...
- 2006-3-16 10:15:58 回复该留言
- 10.kinglong
- http://www.klstudio.com
- to 逍遥:
这个和LoadVars一样呀,只是接收是xml格式的文本而已!
你测试一下就知道了! - 2006-4-3 9:31:37 回复该留言
- 11.kinglong
- http://www.klstudio.com
- to lyx :
强制转换当然可以了!
但可能需要你去制定数据传递规则了!
也就是说,你要告诉flash那个是数值型,那个是字符型,那个是逻辑型,等等 - 2006-4-3 9:34:36 回复该留言
- 12.SS
- 用XML类发送数据的时候,ASP接受数据应该怎么写啊?
你在上面说,可以和LV类一样的方式处理,可是LV类是有变量的,而XML建立的数据没有变量,所以在ASP中不知道怎么处理?希望高手指点指点啊!
下面是我在FLASH中建立的XML片段:
var my_xml:XML = new XML("<highscore><name>Ernie</name><score>13045</score></highscore>");
my_xml.contentType = "text/xml";
my_xml.send("xmlAnalyse.asp", "_blank");
在xmlAnalyse.asp中的代码如下
<%
Option Explicit
Dim myxml
myxml=Request.form("my_xml")
Response.Write "xml的内容:" & myxml
%>
输出是空值,希望高手指点~~~ - 2006-4-11 12:03:07 回复该留言
- 13.kinglong
- http://www.klstudio.com
- 我这边也测试了一下,用send方法好像就有问题,但你改用sendAndLoad方法是可以的,大体和LoadVars中一样使用
var login_str:String = "<login username=\"kinglong\" password=\"kinglong\" />";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://www.klstudio.com/demo/xml/xml.asp", myLoginReply_xml,"POST");
服务端用Request.form来接收内容就可以了! - 2006-4-13 0:57:18 回复该留言
- 15.pc
- http://www.kpwang.com
- 我要做到jsp
- 2006-4-30 20:50:59 回复该留言
- 16.flyboy
- http://flyboy
- flyboy
- 2006-5-15 9:36:35 回复该留言
- 17.threem0126
- http://www.mobiusclub.com
- 这个专题总结得很棒!
- 2006-5-16 14:47:12 回复该留言
- 18.gargoyle
- http://www.imfirewall.com
- 楼主写的很棒啊。大有收获。谢谢。聊天监控
- 2006-8-15 16:01:11 回复该留言
- 20.长豆豆的青蛙
- 请各位高手帮忙,我在制作一个论坛时,用flash作为前台显示后台数据时,因为我把动态文本嵌入mc里面。再用attachMovie连接mc,但我遇到一个很烦的问题,它不支持中文,后来我用嵌入字体解决了,但发布的文件大了几十倍,根本不适合网络传输,请问有什么办法可以解决吗?谢谢!(顺便说明,我用flash 8开发,但要求用flash 5导出)
- 2006-9-15 11:10:21 回复该留言
- 23.kinglong
- http://www.klstudio.com
- flash player 8 以上版本支持这个功能!
- 2006-11-15 12:02:45 回复该留言
- 24.po800233
- 最近公司要我做个摇奖,数据从数据库中提取
服务器端的所有代码已经全部写好
直接在FLASH里面链接测试服务器(使用LOAD方法)可以获得用户摇奖信息,不过将FLASH嵌入到网页发布到WEB应用中后发现在多次抽奖获得积分后FLASH就不在向SERVLET提交数据信息,而是一直重复前段的抽奖信息(除积分外,获得实物和现金还是一直向SERVLET提交数据),在跟踪多次信息后发现,当测试用户的积分多次减少后,当中奖(获得积分)后SERVLET更新用户的积分总数返回给FLASH显示,如果返回的积分数与在之前没中奖数值相同时(只要与以前积分有一个相同),FLASH就不再向SERVLET提交数据,进入'死循环'状态,个人感觉一直在读取FLASH缓存中的数据,而不在使用 LOAD方法将数据提交服务器
请问下这是什么原因(调试一下午非常郁闷) - 2006-11-17 21:14:50 回复该留言
- 25.kinglong
- http://www.klstudio.com
- 在你调用的页面地址后面加上一个随机数就可以了
如调用页面是http://www.klstudio.com/data.jsp
在flash里面添加方式是地址 + "?tmp="+ Math.random();
这个tmp对后台页面来说是一种没有意义的参数,因为每次提交数据时,它的值会不同,所以就不会存在缓存的问题了 - 2006-11-18 10:32:04 回复该留言
- 27.kinglong
- http://www.klstudio.com
- 用不着
- 2006-11-18 22:30:27 回复该留言
- 30.wsm
- 这是从FLASH传数据到网页,然后根据网页返回的数据做相应的操作.
我现在要做先从网页传数据到FLASH,在FLASH里根据传过来的值转到相应的网页该怎么做啊?
传递的数据是中文字. - 2007-4-10 11:10:12 回复该留言
- 31.kinglong
- http://www.klstudio.com
- 我不是完全明白你的意思,如果只是做代参数页面跳转的话,你可以用getURL方式,基于中文参数的话,你可以用escape进行url编码化一下,另外页面转回来的数据你也可以在服务端页面做URLEncode处理,flash可以直接读取的
- 2007-4-11 9:26:49 回复该留言
- 32.正在找方法
- http://www.biaoqingcool.cn
- 正在找方法,想用FLASH调用页面AJAX函数
- 2007-8-17 11:35:23 回复该留言
- 33.kinglong
- http://www.klstudio.com
- 这个自己去看Flash帮助文件中的ExternalInterface类!
- 2007-8-19 0:12:34 回复该留言
- 34.cchzf
- 使用MovieClip物件的getURL、loadVariables、loadVariablesNum方法可以使用HTTP或HTTPS協定以URL編碼格式向PHP應用程式伺服器傳遞和接收資料。
kinglong有联系方式吗?邮箱是我的msn,可以加我罗 - 2007-12-7 18:39:05 回复该留言
- 35.kinglong
- http://www.klstudio.com
- QQ:89747714
msn:qiankinglong@hotmail.com - 2007-12-10 13:56:00 回复该留言
- 36.hap
- http://hap.15sou.com
- 我说版主,你能给个实例下载让我看看,因为我照着你的教程做了好多遍,还是不行,要是有个相应 的小实例让我们下载看看,我们就可以发现自己什么地方错了
- 2008-1-15 15:49:42 回复该留言
- 37.ZZJ
- http://alexa.xabeifeng.com
- var username;
System.useCodepage = true;
var userinf = new LoadVars();
userinf.username = username;
userinf.onLoad = function (success)
{
if (success)
{
_root.username = this.username.substr(6, this.username.length - 9);
}
else
{
_root.username = "null";
} // end if
};
userinf.sendAndLoad("../hjkg1tijiao.asp",userinf,"POST");
getURL("FSCommand:showmenu", false, "POST");
谁愿意帮我弄完整。连后台ASP文件也帮忙写出来?
数据库链接:123.mdb
表名:222
字段:555
功能:每次FLASH提交多在原555上的数据加上现在提交的数据!
315258999@QQ.COM - 2009-1-12 18:50:23 回复该留言
发表评论
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。




