上篇补充:动态执行WebService的类定义

package common.service  
{  
    import mx.controls.Alert;  
    import mx.rpc.AbstractOperation;  
    import mx.rpc.events.FaultEvent;  
    import mx.rpc.events.ResultEvent;  
    import mx.rpc.soap.SOAPHeader;  
    import mx.rpc.soap.WebService;  
      
    public class BaseWebService extends WebService  
    {  
        private var _callBackHandler:Function;  
        private var _faultHandler:Function;  
        private var _args:Array;  
        public function BaseWebService()  
        {  
            super();  
              
        }  
        public function set callBackHandler(callBackHandler:Function):void{  
            this._callBackHandler = callBackHandler;  
        }  
        public function get callBackHandler():Function{  
            return this._callBackHandler;  
        }  
        public function set args(args:Array):void{  
            this._args = args;  
        }  
        public function get args():Array{  
            return this._args;  
        }  
        public function set faultHandler(faultHandler:Function){  
            this._faultHandler = faultHandler;  
        }  
        public function get faultHandler():Function{  
            return this._faultHandler;  
        }  
        public function initWsdl(wsdl:String):void{  
            this.wsdl = wsdl;  
            this.loadWSDL();  
        }  
        public function initHeader(header:SOAPHeader):void{  
            this.clearHeaders();  
            this.addHeader(header);  
        }  
        public function sendOperation(functionName:String,args:Array):void{  
            //根据方法名动态调用WebService服务器的方法  
            var operation:AbstractOperation = this.getOperation(functionName);  
            //为调用的方法添加监听器,回调函数由外部动态传入  
            operation.addEventListener(ResultEvent.RESULT,this.callBackHandler);  
            //为调用的方法添加错误监听器,如果传入的错误处理方法为空,则调用默认的处理方法  
            if(this.faultHandler){  
                operation.addEventListener(FaultEvent.FAULT,this.faultHandler);   
            }else{  
                operation.addEventListener(FaultEvent.FAULT,defaultFaultHandler);   
            }  
            //为调用的方法传参数,参数类型为Array  
            operation.arguments = args;  
            //执行调用的方法  
            operation.send();  
              
        }  
        private function defaultFaultHandler(event:FaultEvent):void{  
            Alert.show(event.fault.message);  
        }  
 
    }  
}

posted @ 2009-10-14 11:40  烟缸里的鱼  阅读(201)  评论(0编辑  收藏  举报