14.4.1 Flash提交数据给ASP

发布时间:2024年01月23日

14.4.1 Flash提交数据给ASP

在实际应用中,考虑到安全性等原因,许多数据都要被用户提交到服务器端进行处理,服务器端处理完毕后,再将结果返回给用户。下面这个例子就是由用户通过Flash界面提交数据给服务器端的ASP,ASP对数据进行处理(进行乘方运算)后,将结果再返回到用户的Flash界面。

1.打开Flash,选择【File】|【New】命令,在弹出的【New Document】对话框中选择文档类型为【Flash File(ActionScript 3.0)】,单击【OK】按钮,新建一个Flash文档。然后将其保存到IIS主目录(D盘下的“wwwroot”文件夹)下的“calOnServer”文件夹,并命名为“calOnServer.fla”。

2.选择【File】|【New】命令,在弹出的【New Document】对话框中选择文档类型为【ActionScript File】,单击【OK】按钮,新建一个Flash脚本文档,然后将该Flash脚本文档同样保存到“D:\wwwroot\calOnServer”下,并命名为“calOnServer.as”,使其与上面的“calOnServer.fla”在同一文件夹下。

3.在“calOnServer.fla”文档的属性面板中设置其【Document class】为“calOnServer”,然后在“calOnServer.as”脚本文档中输入下列代码并保存:

package {

?????? //导入文件运行所需的类

?????? import flash.display.*;

?????? import flash.text.*;

?????? import flash.net.*;

?????? import flash.events.*;

?????? import flash.errors.*;

?????? import flash.system.*;

?????? public class calOnServer extends Sprite {

????????????? //定义显示结果文本框

????????????? private var resultTxtFld:TextField;

????????????? //定义被传递的参数的类型

????????????? private var num:Number;

????????????? //定义ASP文件路径

????????????? private var aspPath:String;

????????????? //定义URLRequestURLLoader对象

????????????? private var aspRequest:URLRequest;

????????????? private var aspLoader:URLLoader;

????????????? //构造函数

????????????? public function calOnServer() {

???????????????????? init();

???????????????????? startLoad()

????????????? }

????????????? //初始化

????????????? private function init() {

???????????????????? //设置编码,不然会显示乱码

???????????????????? System.useCodePage=true;

???????????????????? //在场景中添加一个用于接收数据的文本框

???????????????????? resultTxtFld= createTextField(220,200, 100, 20);

resultTxtFld.autoSize=TextFieldAutoSize.CENTER

???????????????????? resultTxtFld.type = TextFieldType.DYNAMIC;

???????????????????? resultTxtFld.text = "结果显示区...";

????????????? }

????????????? //载入函数

????????????? private function startLoad(){

???????????????????? //初始化被传递的参数为15,服务器返回的结果将是该值的平方,225

???????????????????? num=15;

???????????????????? aspPath="http://127.0.0.1/calOnServer/calOnServer.asp?num="+num;

???????????????????? aspRequest=new URLRequest(aspPath);

???????????????????? aspLoader=new URLLoader();

???????????????????? configureListeners(aspLoader);

???????????????????? try {

??????????????????????????? aspLoader.load(aspRequest);

???????????????????? } catch (error:Error) {

??????????????????????????? resultTxtFld.text="加载ASP文件失败...";

???????????????????? }

????????????? }

????????????? //分派侦听事件

????????????? private function configureListeners(dispatcher:IEventDispatcher):void {

???????????????????? dispatcher.addEventListener(Event.COMPLETE,aspLoadComplete);

???????????????????? dispatcher.addEventListener(IOErrorEvent.IO_ERROR,aspLoadError);

????????????? }

????????????? //ASP载入结束时的处理

????????????? private function aspLoadComplete(event:Event):void {

???????????????????? resultTxtFld.text="15×15="+event.target.data;

????????????? }

????????????? //ASP载入错误时的处理

????????????? private function aspLoadError(event:IOErrorEvent):void {

???????????????????? resultTxtFld.text="加载ASP文件失败";

????????????? }

????????????? //生成文本框函数

????????????? private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {

???????????????????? var tmpTxtFld:TextField = new TextField();

???????????????????? tmpTxtFld.x = x;

???????????????????? tmpTxtFld.y = y;

???????????????????? tmpTxtFld.width = width;

???????????????????? tmpTxtFld.height = height;

???????????????????? tmpTxtFld.background = true;

???????????????????? tmpTxtFld.border = true;

???????????????????? addChild(tmpTxtFld);

???????????????????? return tmpTxtFld;

????????????? }

?????? }

}

4.打开Windows 2003附件中的“记事本”程序,并输入以下代码:

<%

num=Request("num")

result=num*num

Response.Write result

%>

注意,输入上面的标点符号时输入法要切换到英文状态。

5.将该文件另存为“calOnServer.asp”,并拷贝到“D:\wwwroot\calOnServer”下,使其与上面的“calOnServer.fla”和“calOnServer.as”在同一文件夹下。

6.按下【Ctrl+Enter】组合键,在“calOnServer.swf”窗口的结果显示文本框中将看到计算后的结果“81”。如图14-4-1所示。

图14-4-1运行结果

从上面的“calOnServer.as”脚本文档中可以看到,Flash向ASP提交参数的方式是在ASP文件路径后面加上问号,然后再跟上参数名称与参数值,参数名称与参数值之间用等号连接,如上面的:

aspPath="http://127.0.0.1/calOnServer/calOnServer.asp?num="+num;

上面的num参数在代码中被赋值为“9”后,此时的aspPath的实际形式为:

aspPath="http://127.0.0.1/calOnServer/calOnServer.asp?num=9

服务器端的ASP用Request方法来获取num:

num=Request("num")

在该例中只传递了一个参数,如果有多个参数需要传递,则不同的参数之间需要用“&”区分开,如:

aspPath="http://127.0.0.1/calOnServer/calOnServer.asp?num1="+num1+"&num2="+num2+"&num3="+num3;

如果上面的num1取值2,num2取值3,num3取值4,则aspPath的实际形式为:

http://127.0.0.1/calOnServer/calOnServer.asp?num1=2&num2=3&num3=4

在服务器端的ASP中,可以分别利用Request方法来获取Flash提交的数据:

num1=Request("num1")

num2=Request("num2")

num3=Request("num3")

如此简单的计算在客户端可以瞬间完成,但对于大型数据而言,仅靠一台客户端有时是很困难的,把数据提交到服务器,然后由服务器完成相关计算,不但可以减轻客户端的负担,而且数据的安全性也得到了很好的保护。

文章来源:https://blog.csdn.net/XiBuQiuChong/article/details/135783290
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。