快速业务通道

flash与ASP通信的几种方法(1)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10

?? 一个例子简单的描述了如何通过GET方法向服务器端的ASP发送请求:
_root. pushAction = function(URL) { this.loadVariables(URL, "GET"); } var ask = true; var pushURL = "http://localhost/test/return.asp?ask="+ ask; pushAction (pushURL); _root.onEnterFrame = fuction(){ trace(_root.output); }??? 这里首先定义了一个名为pushAction的函数,在loadVariables函数中使用了GET参数。然后定义了一个名为ask的布尔型变量,用来向服务器传递变量。最后使用pushAction函数向服务器上的一个名为return的ASP页面发送GET请求。如果需要对这样的请求作出处理,在ASP中,URL行的分析结果存在于Request对象中,比如下例:
return.asp
<%@ Language="JScript" %> <% //声明并定义接受请求的变量 var str_getask= Request.QueryString("ask"); //声明并定义返回信息变量 var str_Msg = "Sorry! Your request tread awry."; //如果接受到的变量为true,则返回成功消息 if (str_getask == "true"){ str_Msg = "OK! Your request succeed!"; } Response.write("output=" + str_Msg); %>??? 这样,一个名字为output,值为str_Msg的变量就发送回Flash Player中,可以在Flash中以output的名字引用这个变量。当然我们必须注意服务器在处理这个过程中是需要时间的,因此最后那个onEnterFrame用来测试是否有变量返回.
?? loadVariables提供了一种简单的方法让我们可以从服务器端的ASP或者PHP页面载入变量,除了使用GET方法,它还可以使用POST方法将客户端提交的数据传递给服务器。然而在处理大量客户端与服务器端交互的信息时,使用过多的loadVariables语句会让整个程序的维护性和可读性变得复杂。在Flash MX的Action中,新增加了一个LoadVars的对象,并将它和XML,XMLSocket对象一起归纳于Client/Server对象之下。LoadVars 对象是 loadVariables 动作的替代方法,它能够提供一种更好的结构向服务器发送和返回信息。一个典型的LoadVars对象使用的例子如下:
//构造一个新的LoadVars对象
myload = new LoadVars();
//设定myload的动作,以便服务器验证
myload.action = "post";
//验证和服务器连接的函数
myload.onLoad = function(success) {
//如果和服务器成功连接则…
?if (success) {
//如果验证动作成功则…
? if (this.conn == "1") {
???????? //将返回对象中的output变量赋值给场景中var为output的Dynamic Text框
?? _root.output = this.output;
? }
?} else {
??????? //如果和服务器连接不成功则返回失败消息,需要检查路径是否正确
? _root.output = "Can''t connect to Server";
?}
};
//Dynamic Text的初始值为一个等待消息
_root.output = "Waiting for response...";
//将myload下的变量发送到服务器端,并将服务器返回的数据结果放在myload对象中
myload.sendAndLoad("http://localhost/test/return.asp", myload, "post");
//myload.sendAndLoad("http://localhost:8001/test/return.php",myload, "post");??? 在场景中以一个var名为output的Dynamic Text框来接受来自服务器的消息。使用LoadVars,我们可以利用sendAndLoad方法将一个LoadVars的实体下的所有变量发送出去,并将服务器返回的数据结果存储到一个目标对象中,其中conn,output都是从服务器发送回来的,我们还利用了其onLoad事件函数来检验其是否将信息发送到了服务器页面,再利用从服务器传回来的数据(this.conn)来验证信息是否正确。服务器页面的代码如下:
ASP return.asp:
<%@Language="JScript"%>
<%
var str_Msg;
var action;
var conn;
action = Request.Form("action");
if (action == "post"){
??? str_Msg = "OK! return a Msg to you!";
??? conn = 1;
}
Response.write("conn=" + conn + "&output=" + str_Msg);
%> PHP return.php:
$action = $HTTP_POST_VARS["action"];
if ($action == "post") {
??? $str_Msg = "OK! return a Msg to you!";
??? $conn = 1;
}
echo "conn=" . $conn . "&output=" . $str_Msg;
?>;??? 如果本例执行成功,则会在Flash Player中出现成功画面,如图所示。如果失败,则返回失败消息(一般都是路径出错)
?
《视觉·互动》电子杂志周刊版
相关主题
Macromedia Breeze新品面世
ShareObject 实现Replay功能
ShareObject 实现flash数据存储
[上海]IDES互动招人
FireFly与ColdFusion开发指南
站点搜索
站点最新 站点最新列表
Flash Paper使用全功略
《视觉·互动》周刊 20 期上线
真正的ColdFusionMX空间服务
Fireworks绘制水粉画
FWMX一例XP风格按钮的制作
栏目最新 栏目最新列表
Flash Paper使用全功略
Fireworks绘制水粉画
FWMX一例XP风格按钮的制作
Fireworks描绘QQ企鹅
PenPalette与 intuos2 应用实例

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号