1、 在FLASH与ASP通信,首先要了解在FLASH中,那些角色充当了传递变量的角色。
A、 loadVariables("文件URL", "目标");
loadVariablesNum("文件URL","层级");
这两个不在这篇文章的讨论范围之内,请各位网友自行参照FLASH自带的Actions cript字典进行操作。
2、 下面我将介绍这篇文章中所用到的一个对像及其本文所用到的相关属性,那就是LoadVars对象
以下是调用Actions cript中的说明
LoadVars(对象)
LoadVars 对象是 loadVariables 动作的替代方法,用于在 Flash 影片和服务器之间传输变量。
可使用 LoadVars 对象在下载时获取错误信息、进度指示和流数据。LoadVars 对象的工作原理非常类似于 XML 对象;它使用方法 load、send 和 sendAndLoad 与服务器进行通讯。LoadVars 对象和 XML 对象的主要差别在于 LoadVars 传输动作脚本的名称和值对,而不是 XML 对象中存储的 XML DOM 树。
LoadVars 对象与 XML 对象遵循相同的安全限制。
您必须使用构造函数 new LoadVars() 创建 LoadVars 对象的实例后,才可调用其方法。
Flash Player 6 和更高版本支持 LoadVars 对象。
LoadVars.load 从指定的 URL 下载变量。
LoadVars.send 将变量从 LoadVars 对象发布到 URL。
LoadVars.sendAndLoad 将变量从 LoadVars 对象发布到 URL,并将服务器的响应下载到目标对象。
还有一个onLoad事件, 示 load 操作是成功完成 (true) 还是以失败结束 (false)
因为这里只用到了这三个方法,所以在以下文字中以这三个方法为主要介绍对象,用实例来说明这三个方法的使用。
3、 我们先做好准备工作,准备好一个读取数据据记录,一个处理FLASH传入参数的ASP文件。
================LoadRs.asp取记录的ASP文件======================
< %@LANGUAGE="VBs cript" CODEPAGE="936"% >
< %
Set OutRsCount = Server.CreateObject("ADODB.Recordset")
OutRsCount.ActiveConnection = MM_Conn_STRING
OutRsCount.Source = "SELECT COUNT(*) as OutRsCount FROM MessageList"
OutRsCount.CursorType = 0
OutRsCount.CursorLocation = 2
OutRsCount.LockType = 1
OutRsCount.Open()
% >
< %
Set OutRs = Server.CreateObject("ADODB.Recordset")
OutRs.ActiveConnection = MM_Conn_STRING
OutRs.Source = "SELECT * FROM MessageList ORDER BY MsgID DESC"
OutRs.CursorType = 0
OutRs.CursorLocation = 2
OutRs.LockType = 1
OutRs.Open()
% >
< %
Response.Write "OutRsCount=" & Server.HTMLEncode(OutRsCount.Fields.Item("OutRsCount").value)
Response.Write("&")
% >
< %
dim i
i=1
OutRs.MoveFirst()
while(NOT OutRs.eof)
Response.Write "MsgID" & i &"=" & Server.HTMLEncode(OutRs.Fields.Item("MsgID").value) & "&"
Response.Write "MsgName" & i & "=" & Server.HTMLEncode(OutRs.Fields.Item("MsgName").value) & "&"
Response.Write "MsgEmail" & i & "=" & Server.HTMLEncode(OutRs.Fields.Item("MsgEmail").value) & "&"
Response.Write "MsgOicq" & i & "=" & Server.HTMLEncode(OutRs.Fields.Item("MsgOicq").value) & "&"
Response.Write "MsgContent" & i & "=" & Server.HTMLEncode(OutRs.Fields.Item("MsgContent").value) & "&"
Response.Write "MsgAddTime" & i & "=" & Server.HTMLEncode(OutRs.Fields.Item("MsgAddTime").value) & "&"
OutRs.MoveNext()
i=i+1
wend
% >
< %
OutRsCount.Close()
Set OutRsCount = Nothing
% >
< %
OutRs.Close()
Set OutRs = Nothing
% >
======================== LoadRs.asp取记录的ASP文件结束=============
========================处理记录的ASP文件Display. asp===============
< %
Dim UserName,UserPass
UserName = Request(“UserName”)
UserPass = Request(“UserPass”)
% >
< %
Response.Write “MssageContent=你好,你的用户名是” & UserName & “你的密码是” & UserPass
% >
=========================处理记录的ASP文件Display.asp结束==========
=========================处理并发回数据的文件Select.asp================
< %
Dim TmpVar
TmpVar = Request(“SelectNumber”)
If TmpVar = 0 Then
Response.write “MsgTitle=早上好”
Else
Response.write “MsgTitle=你好你好”
End If
% >
============================Select.asp结束============================
4、 现在正式开始FLASH方面
A、首先我们要做的是一个读取记录的程序
在主场景的第一帧上用new关键字定义一个LoadVars对像MyLoad
MyLoad = new LoadVars()
然后定义在数据载入时发生的事件,使用上面介绍过的onLoad事件
MyLoad.onLoad=function(success){
//判断载入是否成功
if(success){
for(n=0;n<=Myload.OutRsCount;n++){
//循环输出所有读入的记录
trace(eval(“MyLoad. MsgID” add n))
trace(eval(“MyLoad. MsgName” add n))
trace(eval(“MyLoad.MsgEmail” add n))
trace(eval(“MyLoad. MsgOicq” add n))
trace(eval(“MyLoad. MsgContent” add n))
trace(eval(“MyLoad. MsgAddTime” add n))
trace(“==============第” add n add “条记录==============”)
}
}else{
//如果读取失败,则显示失败字样
trace(“失败”)
}
}
//最后,进行asp文件的读取。
MyLoad.load(http://127.0.0.1/test/LoadRs.asp”)
这样,就能使用LoadVars对像对读入的数据进行操作了。
调用方法就是LoadVars实例名.你在asp中输出的变量名,例如LoadVars对象为MyLoad,ASP中传入的变量名为MsgID,那么对这个变量的引用就是MyLoad.MsgID,当然有一点值得注意,如果你不是在同一MC中调用的话,必须将此LoadVars对象的路径写上.
B、接下来,我们做一个发送变量的FLASH程序
1、同上,首先要定义一个LoadVars对像,此处我用了MySend = new LoadVars()
2、在主场景中建两个输入文本,分别在变量处命名为MyTxtUserName和MyTxtUserPass
3、 立一个按钮SubMit,名字随意,然后在该按钮的onRelease事件中确定并收集你要发送的变量,比如我们使用UserName和UserPass作为变量的名称,那么要在MySend对象中为这个两变量赋值
具体程序如下:
on(release){
//将文本变量与MySend中的值赋于MySend对象的两个变量
MySend.UserName = “MyTxtUserName”
MySend.UserPass = “MyTxtUserPass”
MySend.send(http://127.0.0.1/test/Display.asp”,”_blank”,”post”)
}
这样你就能在新开的窗口中看到这样的一段信息了
“你好,你的用户名是XXX你的密码是XXX”就表示成功了
C、最后,要做一个Flash发送并接收变量的程序
同上,定义一个LoadVars对象MySendAndLoad
然后在主场上添加一个文本框TmpVar和一个发送按钮,在按钮中添加如下代码
on(release){
MySendAndLoad.SelectNumber = TmpVar
MySendAndLoad.onLoad=function(success){
If(success){
trace(“你读如的内容为” add MySendAndLoad.MsgTitle)
}else{
trace(“载入失败”)
}
}
MySendAndLoad.sendAndLoad("http://127.0.0.1/test/Select.asp";;;,MySendAndLoad,post)
}
第一个为处理数据的URL,第二个为返回对象,第三个为发送方式
flash与asp通信
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- ASP操作Excel常见错误(2007-11-15 4:39:21)
- 同一个用户不允许同时登陆两次(2007-11-15 1:17:43)
- 罗列全部session和application(2007-11-12 6:26:16)
- 访问和更新Cookies集合(2007-11-11 1:42:29)
- asp中cookie使用示例(2007-11-7 3:2:28)
- asp重定向-response.redirect和server.transfer(2007-10-24 9:18:30)
- vbscript Replace 函数(2007-10-21 4:33:2)
- asp:Server对象(2007-10-11 7:9:58)
- vbscript:日期格式常数(2007-10-10 7:30:49)
- ASP动态包含文件的改进方法(2007-10-8 1:5:48)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
