2017-01-26 1 views
4

LocalScript PHP에서 ActionsScripts3의 JSON 데이터를 읽으려고하는데 일부 코드가 있지만이 코드가 작동하지 않습니다.간단한 ActionScript 3 PHP에서 JSON 읽기

PHP :

<?php 
$arr = array ('DATA1'=>"111",'DATA2'=>"222"); 
header('Content-Type: application/json'); 
echo json_encode($arr); 
?> 

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

비동기 작업이기 때문에 하나의 함수에서 수행 할 수 없습니다. 요청을 한 다음 응답을 기다립니다. 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

잘로드 기능에 콜백을 전달하여 하나의 기능으로 수행 할 수 있습니다. – RafH

+0

이 코드에서 JSON의 데이터를 분리하는 방법은 무엇입니까? "String1 = 111" "String2 = 222" –