隨筆-17  評論-64  文章-79  trackbacks-1

          最近看一些文檔,總結了一些<mx:HTTPService>給后臺傳遞參數的方法,列舉如下:

          方法1:采用URLVariables對象

          <?xml version="1.0" encoding="utf-8"?>
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
               layout
          ="absolute" fontSize="12"
              
          >
              
          <mx:Script>
                  
          <![CDATA[
                      import mx.controls.Alert;
                      import mx.rpc.events.ResultEvent;
                      //對提交給后臺的參數進行UTF-8的編碼處理
                      private function httpEncoding(param:String):String{
                          return encodeURIComponent(param);
                      }
                      private function httpEncoding0(param:String):String{
                          return param;//encodeURI(param);
                      }
                      private function doRequest():void{
                          btn_do.enabled=false;
                          var url:String = "http://localhost:8600/grid.jsp";
                          //以下那樣寫后臺會亂碼,不管是否做URI編碼轉換
                          //url += "?user="+httpEncoding0("用戶名");
                          //url += "&psw="+httpEncoding0("密碼");
                          //trace(url);
                          srv.url = url;
                          //srv.send();
                          //以下這樣寫正常
                          var params:URLVariables = new URLVariables();
                          //這個user,psw就是傳入后臺的參數user,jsp就用 request.getParameter("user")來取
                          params.user = httpEncoding("用戶名");
                          params.psw = httpEncoding("密碼");
                          srv.send(params);            
                      }
                      private function resultHandler(event:ResultEvent):void{
                          Alert.show("與后臺交互結束,前臺開始取得的數據...","提示信息");
                          btn_do.enabled=true;
                      }
                  
          ]]>
              
          </mx:Script>
              
          <mx:HTTPService id="srv" result="resultHandler(event);"/>
              
          <mx:Panel title="測試與jsp后臺交互" layout="absolute" width="100%" height="90%">
                  
          <mx:Button id="btn_do" label="取得數據" click="doRequest();"/>
                  
          <mx:Spacer height="1"/>
                  
          <mx:DataGrid dataProvider="{srv.lastResult.catalog.product}" width="100%" height="100%" y="28"/>     
              
          </mx:Panel>
          </mx:Application>

           方法2:采用<mx:request/>,同時也演示了mx:State的用法,[來自網上]

          <?xml version="1.0" encoding="utf-8"?>
          <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
              
          <mx:states>
                  
          <mx:State name="Logged In">
                      
          <mx:SetProperty target="{panel1}" name="width" value="95%"/>
                      
          <mx:SetProperty target="{panel1}" name="height" value="95%"/>
                      
          <mx:RemoveChild target="{password}"/>
                      
          <mx:RemoveChild target="{username}"/>
                      
          <mx:RemoveChild target="{label1}"/>
                      
          <mx:RemoveChild target="{Submit}"/>
                      
          <mx:RemoveChild target="{label2}"/>
                      
          <mx:SetProperty target="{panel1}" name="title" value="Members Section"/>
                      
          <mx:AddChild relativeTo="{panel1}" position="lastChild">
                          
          <mx:Label x="10" y="10" text="Welcome to the Members Section!"/>
                      
          </mx:AddChild>
                      
          <mx:AddChild relativeTo="{panel1}" position="lastChild">
                          
          <mx:Label x="10" y="36" text="Here you can do great things, like join the forums @ Viper Creations!"/>
                      
          </mx:AddChild>
                      
          <mx:AddChild relativeTo="{panel1}" position="lastChild">
                          
          <mx:Label x="10" y="62" text="Label"/>
                      
          </mx:AddChild>
                  
          </mx:State>
              
          </mx:states>
              
          <mx:Script>
                  
          <![CDATA[
                      import mx.rpc.events.ResultEvent;
                      
                  
          ]]>
              
          </mx:Script>
              
          <mx:Script>
              

          <![CDATA[

          private function checkLogin(evt:ResultEvent):void
          {

              if(evt.result.loginsuccess == "yes")

              {

              currentState = "Logged In";

              }

              if(evt.result.loginsuccess == "no")

              {
                  
                  mx.controls.Alert.show('Invalid username/password');

              }        
          }

          ]]>

          </mx:Script>
              
          <mx:HTTPService id="login_user" result="checkLogin(event)" showBusyCursor="true" method="POST" url="http://www.vipercreations.com/site_admin/login.php" useProxy="false">
                  
          <mx:request xmlns="">
                      
          <username>
                          {username.text}
                      
          </username>
                      
          <password>
                          {password.text}
                      
          </password>
                  
          </mx:request>
              
          </mx:HTTPService>
              
              
          <mx:Panel resizeEffect="Resize" width="250" height="200" layout="absolute" title="Login System" horizontalCenter="0" verticalCenter="-2" id="panel1">
                  
          <mx:Label x="10" y="10" text="Username:" id="label1"/>
                  
          <mx:TextInput x="10" y="36" id="username"/>
                  
          <mx:Label x="10" y="66" text="Password:" id="label2"/>
                  
          <mx:TextInput x="10" y="92" id="password" displayAsPassword="true"/>
                  
          <mx:Button x="10" y="122" label="Submit" id="Submit" click="login_user.send();"/>
              
          </mx:Panel>
              
          </mx:Application>
          posted on 2007-09-11 21:24 飛鳥 閱讀(19734) 評論(2)  編輯  收藏 所屬分類: FLEX

          評論:
          # bopgmzqw 2008-04-10 18:06 | bopgmzqw
          adcjqadr http://ijfsueon.com vomynneh zjquesmz  回復  更多評論
            
          # re: Flex HTTPService如何給后臺傳遞參數 2009-08-05 20:02 | Xinem
          學習了,多謝分享!  回復  更多評論
            
          主站蜘蛛池模板: 蚌埠市| 蓬莱市| 财经| 诸暨市| 辽阳县| 齐河县| 社旗县| 仁化县| 五河县| 南平市| 甘孜| 石屏县| 铅山县| 开原市| 会理县| 盘锦市| 普定县| 扶余县| 芷江| 文山县| 凌海市| 若尔盖县| 青神县| 萨嘎县| 门头沟区| 平湖市| 安徽省| 博罗县| 永顺县| 志丹县| 错那县| 奎屯市| 长海县| 满洲里市| 达拉特旗| 宝山区| 扎鲁特旗| 隆尧县| 贵阳市| 民县| 洮南市|