總的來說,我會使用push方法而不是傳遞一個變量,從而減少從中間入侵的機會。
我對HTTP調用AS3代碼:
public function someRequest() : void
{
var service : HTTPService = new HTTPService();
service.url = "http://localhost/getData.php";
service.useProxy = false;
service.method = "POST";
service.contentType = "application/xml"; // Pass XML data.
service.request = "<ID>somevalue</ID>"; // The XML data.
service.resultFormat = "xml"; // Recieve XML data.
service.addEventListener(ResultEvent.RESULT, createFields);
service.addEventListener(FaultEvent.FAULT, handleFault);
service.send();
}
private function createFields(event : ResultEvent) : void
{
var result : String = event.result.toString();
returnData = XML(result);
}
private function handleFault(event : FaultEvent) : void
{
var faultstring : String = event.fault.faultString;
Alert.show(faultstring);
}
當你向中間看,有進入變量的XML空間。我使用這種方法將數據從PHP傳遞到AS3。
的PHP是:
<?php
define("DATABASE_SERVER", "localhost");
define("DATABASE_USERNAME", "root");
define("DATABASE_PASSWORD", "**");
define("DATABASE_NAME", "dbName");
//connect to the database.
$mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
mysql_select_db(DATABASE_NAME);
$Query = "SELECT * from data WHERE employeeID = '" . ($_POST['ID']) . "'";
$Result = mysql_query($Query);
$Return = "<data>";
while ($User = mysql_fetch_object($Result))
{
$Return .= "<user><userid>" . $User->userid . "</userid><username>" . $User->username . "</username><emailaddress>" . $User->emailaddress . "</emailaddress></user>";
}
$Return .= "</data>";
mysql_free_result($Result);
print ($Return)
?>
希望幫助你對你的方式。
只是一個評論,無論我是盲目的,我無法找到您的PHP示例中傳遞數據的位置/方式。 – 2012-04-25 18:33:01
在AS3代碼中,您會注意到有一個 – powelljf3 2012-04-25 19:59:04
我在用於將XML數據傳入和傳出AS3的三行代碼中添加了註釋。它們是.contentType,.request和.resultFormat行。我發現使用XML工作很容易,因爲mySQL可以乾淨地使用它,但是您可以更改這些行中的描述符以使用您選擇的數據格式。 – powelljf3 2012-04-25 20:06:36