【Flex&AIR教程】Flex+ASP.NET+Access = GuestBook(HTTPService版和URLLoader版)[提交篇]

      Flex和AIR 2007-8-3 15:14

最下面提供源文件和Word文档教程下载!

出处: www.RiaHome.cn (也就是本博客)
作者: www.Y-boy.cn
---------------------------------------- 主页:www.Y-boy.cn 出处:www.RiaHome.cn
本教程为 Flex+ASP.NET+Access 的留言簿

    但本例子并不像一个留言簿,请恕罪!一个留言簿,最起码有提交和显示两块。其它功能(如:修改和删除留言)道理和提交一样,也是Flex跟后台文件通讯的原理,而最终实现该功能的核心部分在后台文件。如本例子的save_mdb.aspx文件,修改一下SQL语句就能实现修改或删除留言的功能了。
    所以本教程很简单,只着重Flex跟后台文件打交道,明白这个后,其它的功能在后台文件里实现就OK了。

----------------------------------------
本教程分为:提交篇和显示篇。

    提交篇-讲述使用Flex通过ASP.NET向Access数据库写入数据,分为HTTPService版和URLLoader版。
    显示篇-讲述使用ASP.NET读取Access数据库并生成xml文件,再通过Flex显示出来。

----------------------------------------
如发现本教程有错误,请也作者联系,谢谢!

    主页:www.Y-boy.cn
    博客:www.RiaHome.cn
    邮箱:y_boy@126.com

====================================================

提交篇:HTTPService
 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#f6f6f6" backgroundGradientColors="[#f6f6f6, #AA1220]" fontSize="12">
 
<!--主页:www.Y-boy.cn 出处:www.RiaHome.cn
        我博客都不知道有什么好写了,就写写这个教程来填充一下博客.高手们别见笑了.
        注意:本例子假设你已经安装了.net框架和IIS.
        你可以使用<mx:HTTPService>标签来声明HTTPService对象.当你调用HTTPService对象的send()方法时,就会产生一个HTTP请求到你指定的url,一个HTTP响应就会返回.
        本例子是把userName变量和age变量发送到save_mdb.aspx文件,然后让save_mdb.aspx进行处理并返回处理后的信息.其中,userName变量和age变量分别对应于<mx:request>标签里的<userName><age>标签.也就是说把<userName><age>标签作为变量,把这个两标签里的内容作为变量的值.标签里使用了大括号"{}",<userName>标签里的大括号,作用是把iduserName<mx:TextInput>控件的text属性转换为实际的内容.因为<mx:TextInput>控件的text属性就是指向<mx:TextInput>控件的实际内容,而这些实际内容是用户输入的.
        分别说说<mx:HTTPService>标签里使用到的属性:
            id:HTTPService控件取个名字,为了以后调用它的send()方法,必需给它取一个名字,(如下面的<mx:Button>控件 click="my_HS.send()");
          
            url:后台文件的路径.本例子里你必需更改这个url,改为save_mdb.aspx文件在你电脑里的实际路径.这个save_mdb.aspx文件在压缩包里的dataBase文件夹里.注意,我这里是用"http://localhost"开头的路径,而不是类似"E:\asp\flexguestbook"的路径,这是让save_mdb.aspx文件在.net环境下正常工作,前提是你已经装上.net框架和IIS.
             
            method:这个是指定以何种方式发送HTTP请求.这里使用了GET方法.
          
            resultFormat:指定以何种格式反回结果.这里要返回字符串,所以使用了"text".默认情况下,resultFormat返回的是对象.
          
            result:当处理完发送的请求,并返回结果时,就执行这个属性.这里的操作是:把返回的内容赋值给idresultInfo<mx:TextArea>控件的text属性,也就是让返回的内容在<mx:TextArea>控件里显示.其中的"event.result"就是返回的内容,这里用String()函数把返回的内容强制转换为字符串类型.因为<mx:TextArea>控件的text属性类型是字符串类型,这样转换使两者的类型匹配.
                 
    -->
    <mx:HTTPService id="my_HS" url="http://localhost/E/ASP.NET_Lab/save_mdb.aspx" method="GET" resultFormat="text" result="{resultInfo.text = String(event.result)}">
       <mx:request>
           <userName>{userName.text}</userName>
           <age>{age.text}</age>
       </mx:request>
    </mx:HTTPService>
   
   
    <mx:Label x="10" y="10" text="Flex+ASP.NET+Access = GuestBook (使用HTTPService)" fontSize="20" fontWeight="bold"/>
    <mx:LinkButton label="作者:www.Y-boy.cn" click="navigateToURL(new URLRequest('http://www.Y-boy.cn'),'_blank')" x="804" y="27"/>
    <mx:LinkButton label="出处:www.RiaHome.cn" click="navigateToURL(new URLRequest('http://www.RiaHome.cn'),'_blank')" x="637" y="27"/>
    <mx:HRule x="10" y="49" width="98%"/>
   
   
   
    <mx:Label text="用户名:" x="23" y="61"/>
    <mx:TextInput id="userName" x="77" y="59"/>
   
    <mx:Label text="年龄:" x="35" y="91"/>
    <mx:TextInput id="age" x="77" y="89"/>
   
    <mx:Button label="提交" click="my_HS.send()" x="185" y="121"/>
   
    <mx:Label text="反馈信息:" x="10" y="159"/>
    <mx:TextArea id="resultInfo" x="10" y="179" width="234" height="188"/>
 
</mx:Application>
 
提交篇:URLLoader
 
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#f6f6f6" backgroundGradientColors="[#f6f6f6, #AA1220]" fontSize="12">
    <!--主页:www.Y-boy.cn 出处:www.RiaHome.cn
        我博客都不知道有什么好写了,就写写这个教程来填充一下博客.高手们别见笑了.
        注意:本例子假设你已经安装了.net框架和IIS.
        这个AS3.0版的Flex留言簿就不多说了,详细可以看AS3.0的中文帮助.Flash CS3 使用、AS3帮助教程、Flash CS3组件帮助、Flash Video Encoder 用户手册 PDF下载:http://blog.5d.cn/user39/riahome/200707/417090.html
    PS:Flex建议不采用AS3.0这种形式,取而代之使用<mx:HTTPService>标签.
      
    注意:那个save_mdb.aspx文件在压缩包里的dataBase文件夹里.测试前必需把下面的"http://localhost/E/ASP.NET_Lab/save_mdb.aspx"路径改为save_mdb.aspx文件在你电脑里的实际路径.我这里是用"http://localhost"开头的路径,而不是类似"E:\asp\flexguestbook"的路径,这是让save_mdb.aspx文件在.net环境下正常工作,前提是你已经装上.net框架和IIS.
    -->
    <mx:Script>
       <![CDATA[
      
           import flash.net.URLLoader;
           import flash.net.URLRequest;
           import flash.net.URLLoaderDataFormat;
           import flash.net.URLVariables;
           import flash.events.Event;
           import flash.events.HTTPStatusEvent;
           import flash.events.IOErrorEvent;
           import flash.events.ProgressEvent;
           import flash.events.SecurityErrorEvent;
          
           privatevar variables:URLVariables=new URLVariables();
           privatevar request:URLRequest=new URLRequest("http://localhost/E/ASP.NET_Lab/save_mdb.aspx");
           privatevar loader:URLLoader=new URLLoader();
          
           privatefunction sendInfo(e:Event):void{
              variables.userName=userName.text;
              variables.age=age.text;
             
              request.data = variables;
              request.method = URLRequestMethod.GET;
             
              loader.dataFormat = URLLoaderDataFormat.TEXT;
              loader.addEventListener(Event.COMPLETE, loader_complete);
              loader.addEventListener(Event.OPEN, loader_open);
              loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, loader_httpStatus);
              loader.addEventListener(ProgressEvent.PROGRESS, loader_progress);
              loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loader_security);
              loader.addEventListener(IOErrorEvent.IO_ERROR, loader_ioError);
              loader.load(request);
           }
           privatefunction loader_complete(e:Event):void{
              resultInfo.text="Event.COMPLETE";
           }
           privatefunction loader_open(e:Event):void{
              resultInfo.text="Event.OPEN";
           }
           privatefunction loader_httpStatus(e:HTTPStatusEvent):void{
              resultInfo.text="HTTPStatusEvent.HTTP_STATUS";
           }
           privatefunction loader_progress(e:ProgressEvent):void{
              resultInfo.text="ProgressEvent.PROGRESS";
           }
           privatefunction loader_security(e:SecurityErrorEvent):void{
              resultInfo.text="SecurityErrorEvent.SECURITY_ERROR";
           }
           privatefunction loader_ioError(e:IOErrorEvent):void{
              resultInfo.text="IOErrorEvent.IO_ERROR";
           }
       ]]>
    </mx:Script>
   
    <mx:Label x="10" y="10" text="Flex+ASP.NET+Access = GuestBook (使用URLLoader)" fontSize="20" fontWeight="bold"/>
    <mx:LinkButton label="作者:www.Y-boy.cn" click="navigateToURL(new URLRequest('http://www.Y-boy.cn'),'_blank')" x="788" y="27"/>
    <mx:LinkButton label="出处:www.RiaHome.cn" click="navigateToURL(new URLRequest('http://www.RiaHome.cn'),'_blank')" x="621" y="27"/>
    <mx:HRule x="10" y="49" width="98%"/>
   
   
    <mx:Label text="用户名:" x="23" y="61"/>
    <mx:TextInput id="userName" x="77" y="59"/>
   
    <mx:Label text="年龄:" x="35" y="91"/>
    <mx:TextInput id="age" x="77" y="89"/>
   
    <mx:Button label="提交" click="sendInfo(event)" x="185" y="121"/>
   
    <mx:Label text="反馈信息:" x="10" y="159"/>
    <mx:TextArea id="resultInfo" x="10" y="179" width="234" height="188"/>
</mx:Application>
 
 源文件和Word文档教程:    压缩包下载

标签集:TAGS:Flex AIR 留言簿
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}