2

我想发送一条 XML 消息,并从服务器接收响应并对其进行解码。那是我的课堂设计方法,我想知道那件事的最佳设计。

     class XMLRequest  extends EventDispatcher
     {
        private var m_data:XML;
        private var m_xmlString:String;

        public function XMLRequest(){ m_data = null;} 

        public function setRequest(xmlString:String):Boolean
        {

            if(xmlString)
            {
              m_data = new XML(xmlString);
              trace("Request --" + m_xmlString);
              return true;
            }

            return false;
        }   

     }


 class XMLResponse  extends EventDispatcher
 {
    private m_xmlString:String;

    public function XMLResponse(){ m_data = null;} 

    public function getResponse(data:XML):String
    {
        if(data)
        {
          m_xmlString = data.toString();
          trace("Repsonse --" + m_xmlString);
          return m_xmlString;
        }

        return " ";
    }

然后我将有一个类客户端,它发送和接收响应。这是一个好方法吗?

4

1 回答 1

0

我建议使用像 adobe Loader 这样的类设计。另外,我建议使用原生类 XML 而不是 String

XMLLoader.as

package {
    import flash.events.IEventDispatcher;

    [Event(type="flash.events.Event", name="complete")]
    public interface XMLLoader extends IEventDispatcher {
        function load(requestXML:XML):void;

        function getResponseXML():XML;
    }
}

XMLLoaderTester.as

package {
    import flash.display.Sprite;
    import flash.events.Event;

    public class XMLLoaderTester extends Sprite {
        public function XMLLoaderTester() {
            var loader:XMLLoader; //dont forget instantiate
            loader.addEventListener(Event.COMPLETE, onResponse);

            var requestXML:XML = <command>getData</command>;
            loader.load(requestXML);
        }

        private function onResponse(event:Event):void {
            var loader:XMLLoader = XMLLoader(event.target);
            trace(loader.getResponseXML());
        }
    }
}
于 2013-07-18T18:01:24.390 回答