14.4.1 Flash提交数据给ASP

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 Flash提交数据给ASP_第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")

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

你可能感兴趣的:(多媒体技术,as3,服务器,前端,网络,数据库)