2011-07-17 5 views
0

ActionScript 3で作成したクライアントアプリケーションと、Java上のサーバです。サーバーはJSON形式で応答を送信しますが、まだ完了していません。だから、私は何とか、いくつかのファイルでサーバーからのハードコードされた応答をエミュレートする必要があります。いくつかのキーの応答を取得する。例えばActionScript 3でサーバレスポンスをエミュレートする

:iPhoneで

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

response: {some JSON object} 

、我々が使用できるのplistファイルを持っています。
ここではどのように使用できますか?

答えて

3

簡単な解決策:お使いのコンピュータ上でサーバーを実行します。あなたが何かをシミュレートする必要はありません

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

その方法。サーバー側のコードとクライアント側のコードを同じマシン上に置くことができます。リファクタリングは必要ありません。あなたは、静的なjsonオブジェクトを出力するためのクイックPHPスクリプトを書くことができます。これは、完了したらJavaサービスとの接続をシミュレートします。

+0

この回答が勝ちます。 – Marty

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); 
} 
1

、その方法は、あなたがにサーバーのコードをリファクタリングすることができますその準備ができたら

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)); 
     } 

    }