将json传递给Flash AS3

时间:2014-06-27 00:08:23

标签: php json flash

我试图将我的php中的json加载到flash中。它有效,但我有点问题。我想发送一个GET方法发布到PHP。如果我更改了代码中的jsurl位,则可以正常工作,但当我将其更改为此"http://localhost/Omega/common/flash.php?AppID="+ AppID +"&&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 +"&&formid="+FormID;
  loader.load(new URLRequest(jsurl));
  loader.addEventListener(Event.COMPLETE, completeHandler);
}

在我的php文件中,我有这样的事情:

if(isset($_GET['AppID']) && 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;

我还指定了将params传递给我的.swf文件,如下所示:

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

1 个答案:

答案 0 :(得分:0)

终于解决了。看起来我没有在Flash中调用变量AppIDFormID

我正在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() +"&&formid="+paramObj1.toString();
loader.load(new URLRequest(jsurl));
loader.addEventListener(Event.COMPLETE, completeHandler);

现在它完美无缺。