actionscript-3 - 在 Flash 中发送 XML 和接收响应的最佳类设计

标签 actionscript-3 tcp

我想发送一条 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 " ";
    }

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

最佳答案

我建议使用像 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());
        }
    }
}

关于actionscript-3 - 在 Flash 中发送 XML 和接收响应的最佳类设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17611767/

相关文章:

actionscript-3 - 使用 。或 [ ] 访问对象属性 - 有什么区别?

flash - 将纹理 (BitmapData) 渲染到 2D 空间中的 Stage3D 所需的低级代码是什么?

c - Socket编程中listen()的作用是什么?

qt - 如何在基于 Qt 的 TCP 服务器 - 客户端应用程序中忽略 SSL 错误

java - VB.net 客户端和 Java 服务器之间的 TCP/IP 通信

c++ - 通过 C++ 为 AIR native 扩展生成可变长度的字节数组

flash - 将额外参数传递给 event.COMPLETE 监听器函数

apache-flex - Flex AIR Sqlite 作为嵌入式数据库

C - TCP 文件传输

C++ 游戏应用程序 UDP 与 TCP