在Flash中調用WS時的身分識別驗證_3:基礎資料型別 (Elementary Data Type)

來源:互聯網
上載者:User
在ws和flash用戶端之間進行調用,最令人煩惱的莫過於兩邊同時支援的資料類型太少,下面,我們擴充一下前面的例子,看一看他們之間都可以同時使用那些資料類型。
首先我們來看一看Number類型:
XML 架構類型支援的數字簡單類型很多,在flash中都作為Number類型處理。下面我們對sample2.asmx.cs進行小小的修改:增加一個方法IncAB,如下:
        [WebMethod]
        public int IncAB(int A,int B){
            return A+B;
            }此圖片僅顯示局部,請點擊查看完整圖片


在flash的web服務視窗中可以查看IncAB方法的參數和傳回值的類型都是整型。
對wsSample_2.as也作一點小小的修改:

function IncAB(result){
    trace("ws方法IncAB返回的值為:");
    trace("///////////////////////////");
    trace(result);
    }

    ……
this.incAB_bt.onPress=function(){
    var a:Number=34;
    var b:Number=56;
    var op_2:PendingCall=myws.IncAB(a,b);
    op_2.onResult=IncAB;
    }

 測試一下,output視窗會返回
ws方法IncAB返回的值為:
///////////////////////////
90

如果我們將a和b的值分別設定為一個小數了?比如:56.4之類?output將返回
Error opening URL http://localhost/ws/sample2.asmx
如果你想讓提示更加友好,web服務類提供了容錯處理,但是不是我們這裡要討論的內容,後面再說。
    對於其他的數字簡單類型,都和這個差不多,可以自己嘗試一下。
    
    下面是擴充後的sample2.asmx.cs檔案,添加了IncAB、GetNow、PassDate、PassBool這四個web方法:
/* ======================================================================

C# Source File -- Created with SAPIEN Technologies Primalcode 3.0

NAME: sample2.asmx.cs

AUTHOR: JimLee , Dxl School
DATE  : 2004-10-7

COMMENT: 這個例子示範了在ws接受來自用戶端的數字簡單類型、日期和時間簡單類
         型、bool類型、名稱和字串簡單類型以及Array型別參數並返值。

====================================================================== */

using System;
using System.Web;
using System.Web.Services;

namespace wsLearn{
    [WebService(Namespace="http://www.dxlschool.com/ws/",Description="例2,示範ws方法的傳值",Name="s2") ]
    public class sample2:System.Web.Services.WebService{
        public sample2(){
            //
            }
            
        [WebMethod]
        public string GetUserName(string tName){
            return "你好,"+tName;
            }
            
        [WebMethod]
        public int IncAB(int A,int B){
            return A+B;
            }
            
        [WebMethod]
        public DateTime GetNow(){
            return DateTime.Now;
            }
            
        [WebMethod]
        public DateTime PassDate(DateTime dt){
            return dt;
            }
            
        [WebMethod]
        public bool PassBool(bool bl){
            return bl;
            }
        }
        
    }

   擴充後的wsSample_2.as:
/**
   ActionScript Class File -- Created with SAPIEN Technologies PrimalScript 3.0
   
   @class wsSample_2 
   @package wsSample_2.as
   @author JimLee
   @codehint 
   @example 
   @tooltip 
*/

import mx.services.*;

var myws:WebService=new WebService("http://localhost/ws/sample2.asmx ?wsdl");

function GetUserName(result){
    trace("ws返回的值為:");
    trace("///////////////////////////");
    trace(result);
    }
    
function IncAB(result){
    trace("ws方法IncAB返回的值為:");
    trace("///////////////////////////");
    trace(result);
    }

function GetNow(result){
    trace("ws方法GetNow返回的值為:");
    trace("/////////////////////////");
    trace(result);
    }
    
function PassDate(result){
    trace("ws方法PassDate返回的值為:");
    trace("/////////////////////////");
    trace(result);
    }
    
function PassBool(result){
    trace("ws方法PassBool返回的值為:");
    trace("/////////////////////////");
    trace(result);
    }
    
this.GetUN_bt.onPress=function(){    
    var op_1:PendingCall=myws.GetUserName("喬狗!!");
    op_1.onResult=GetUserName;
    }        

this.incAB_bt.onPress=function(){
    var a:Number=34;
    var b:Number=56;
    var op_2:PendingCall=myws.IncAB(a,b);
    op_2.onResult=IncAB;
    }
    
this.GetNow_bt.onPress=function(){
    var op_3:PendingCall=myws.GetNow();
    op_3.onResult=GetNow;
    }
    
this.PassDT_bt.onPress=function(){
    var dt:Date=new Date (77, 4, 2);
    var op_4:PendingCall=myws.PassDate(dt);
    op_4.onResult=PassDate;
    }

this.PassBool_bt.onPress=function(){
    var bl:Boolean=true;
    var op_5:PendingCall=myws.PassBool(bl);
    op_5.onResult=PassBool;
    }

例子很簡單,不一一注釋了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.