【问题标题】:Emulate server response in ActionScript 3在 ActionScript 3 中模拟服务器响应
【发布时间】:2011-07-17 23:08:12
【问题描述】:

我有一个用 ActionScript 3 制作的客户端应用程序。还有一个使用 Java 的服务器。服务器将以 JSON 格式发送响应,但尚未完成。所以,我需要以某种方式在某个文件中模拟来自服务器的硬编码响应。获取某些键的响应。

例如:

request: http://www.serverscript.com/GET_INFO?a=2&e="hello"

response: {some JSON object}

在 iPhone 中,我们可以使用 pList 文件。
我可以在这里使用什么以及如何使用?

【问题讨论】:

    标签: xml actionscript-3 json configuration-files


    【解决方案1】:

    简单的解决方案:在您的计算机上运行服务器:

    http://www.apachefriends.org/en/xampp.html

    这样您就不必模拟任何东西。您可以将服务器端代码和客户端代码放在同一台机器上,完成后无需在任何地方进行重构,只需上传即可。您可以编写一个快速的 php 脚本来输出一个静态 json 对象,这将在完成后模拟与您的 java 服务的连接。

    【讨论】:

      【解决方案2】:

      您可以从包含虚拟 JSON 的纯文本文件中加载:

      var file:URLRequest = new URLRequest('dummy.txt');
      var loader:URLLoader = new URLLoader();
      loader.addEventListener(Event.COMPLETE,onTextLoaded);
      loader.load(file);
      
      function onTextLoaded(evt:Event):void
      {
          //trace the loaded content
          trace(URLLoader(evt.target).data);
          //decode the JSON
          var useableObject:Object = JSON.decode(URLLoader(evt.target).data);
      }
      

      【讨论】:

        【解决方案3】:

        您确实希望将与服务器的通信包装在其自己的类中,这样您就可以在准备好时将服务器代码重构到其中,例如

            public class ServerGateway extends EventDispatcher
            {
                public static const SERVER_RESPONSE_EVENT:String = "serverResponseEvent";
                public var responseData:String = "";
        
                public function getInfo():void 
                {
                    //load you file here for now but replace with server calls when its done
                    var url:String = "your file path";
                    var myLoader:URLLoader = new URLLoader();           
                    myLoader.addEventListener(Event.COMPLETE, handleServerGetInfo);
                    var request:URLRequest = new URLRequest("file.txt");
                    myLoader.load(request);         
                }
        
                private function handleServerGetInfo(event:Event):void 
                {
                    // this will need replacing to handle server responses when done
                    var myLoader:URLLoader = event.target as URLLoader;
                    myLoader.removeEventListener(Event.COMPLETE, handleServerGetInfo);
                    responseData = myLoader.data as String;
        
                    dispatchEvent(new Event(SERVER_RESPONSE_EVENT));
                }
        
            }
        

        【讨论】:

          猜你喜欢
          • 2017-03-08
          • 2021-11-16
          • 1970-01-01
          • 2017-12-02
          • 2020-09-21
          • 1970-01-01
          • 1970-01-01
          • 2014-10-31
          相关资源
          最近更新 更多