2017-01-26 1 views
4

ローカルホストのPHPからActionsScripts3のJSONデータを読み込もうとしていますが、これを行うコードが見つかりましたが、このコードは機能しません。シンプルなActionScript 3 PHPからJSONを読み取る

PHP:

​​3210

AS3:私は1つだけの機能を使用するように、可能な場合

import flash.events.*; 
import flash.net.*; 


var urlLoader:URLLoader=new URLLoader(); 

function ReadJsonPhp() :void 
     { 
      addEventListener(Event.COMPLETE,init); 
     } 

function init(event:Event) 
     { 
      urlLoader.load(new URLRequest("http://localhost/asphp.php")); 
      urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler); 
     } 
function urlLoaderCompleteHandler(e:Event):void 
     { 
      trace(e.target.data) ; 
      var arrayReceived:Object = JSON.parse(e.target.data); 
     } 

ReadJsonPhp(); 

このコードは、3機能を持っています。

答えて

2

非同期操作であるという理由だけで1つの関数で実行することはできません。あなたは要求をしてから、何らかの応答を待つ。 AS3コードは間違っていて意味がありません。簡単な例を示します。

private var loader:URLLoader; 
    private var request:URLRequest; 
    private function load():void 
    { 
     request = new URLRequest("http://localhost/asphp.php"); 
     loader = new URLLoader() 
     loader.addEventListener(Event.COMPLETE, onComplete); 
     loader.addEventListener(IOErrorEvent.IO_ERROR, onError); 
     loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); 
     loader.load(request); 
    } 
    private function onError(e:Event):void 
    { 
     // handle error 
    } 

    private function onComplete(e:Event) 
    { 
     trace(e.target.data); 
     // keep in mind that if the Json string is invalid here will be SyntaxError exception! 
     var json:Object = JSON.parse(e.target.data); 
     trace("json.DATA1 = ", json.DATA1); 
     trace("json.DATA2 = ", json.DATA2); 
    } 
+0

シンプルなコードと便利な説明をありがとう。 –

+0

これは、コールバックをload関数に渡すことで、1つの関数で実行できます。 – RafH

+0

このコードでJSONのデータを分離する方法はありますか?例えば、トレースや変数を使ってデータを格納する "String1 = 111" "String2 = 222" –

関連する問題