Передача json для Flash AS3

#php #json #flash

#php #json #flash

Вопрос:

Я пытаюсь загрузить json из моего php во flash. Это работает, но у меня небольшая проблема. Я хочу отправить метод GET для публикации в php. Если я изменяю jsurl бит в своем коде, он работает, но когда я меняю его на this "http://localhost/Omega/common/flash.php?AppID=" AppID "amp;amp;formid=" FormID; , он больше не работает.

 var temp:Object;
var loader:URLLoader = new URLLoader();
var jsurl:String;

if(myLoaderInfo.loaderComplete){

  jsurl = "http://localhost/Omega/common/flash.php?AppID="  AppID  "amp;amp;formid=" FormID;
  loader.load(new URLRequest(jsurl));
  loader.addEventListener(Event.COMPLETE, completeHandler);
}
 

В моем php-файле у меня есть что-то вроде этого:

 if(isset($_GET['AppID']) amp;amp; isset($_GET['formid'])){

  $id = $_GET['AppID'];
  $uni = $_GET['formid'];

}else{

  $id = "SOS-00002";
  $uni = "UNI-00002";

}

   $q = sprintf("SELECT * FROM UNI WHERE UNI.studentid= %s AND UNI.uni_id= %s", GetSQLValueString($id,    "text"),GetSQLValueString($uni, "text"));
   $rs = mysql_query($q);
   $var = mysql_fetch_assoc($rs);
   sendResponse(200, json_encode($var));
   return true;
 

Я также указал, что мои параметры передаются в мой swf-файл следующим образом:

 <param name="movie" value="WebForm.swf?AppID=<?php echo $_GET['AppID']; ?>amp;amp;FormID=<?php echo $_GET['FormID']; ?>amp;amp;resultsArray=<?php fillFlashData($_GET['AppID'], $_GET['FormID']); ?>" />
 

Ответ №1:

Наконец-то решил это. Похоже, я не вызывал свои переменные AppID и FormID прямо во Flash

Я загружал свои переменные во Flash следующим образом:

 var AppID, FormID;
var resultsArray:Object;
function loaderComplete(myEvent:Event)
{
    this.myParams=this.loaderInfo.parameters;
    this.myParamsLoaded=true;
    this.useParams();
}

function useParams()
{
    AppID=this.myParams.AppID;
    FormID=this.myParams.FormID;
    resultsArray=this.myParams.resultsArray;
}
 

Изменил это на:

 var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.AppID;
var paramObj1:Object = LoaderInfo(this.root.loaderInfo).parameters.FormID;

jsurl = "http://localhost/Omega/common/flash.php?AppID="  paramObj.toString()  "amp;amp;formid=" paramObj1.toString();
loader.load(new URLRequest(jsurl));
loader.addEventListener(Event.COMPLETE, completeHandler);
 

И теперь это работает отлично.