2014-06-30 37 views
1

我試圖從PHP發送多個值到Flash。我知道如何發送回一個值,這是通過使用PHP的printecho,然後在Flash中使用e.target.data.,例如...(AS3&PHP)從PHP發送多個值到Flash

PHP:

print "resultMessage=$something"; 

閃光燈:

var resultText:TextField; 
resultText.text = e.target.data.resultMessage; 

問題是當試圖接收2個值;我試過的東西像...

PHP:

print "resultNumber=$somethingNumber"; 
print "resultName=$somethingName"; 

閃光燈:

var flashNumber:TextField 
flashNumber.text = e.target.data.resultNumber; 
var flashName:TextField; 
flashName.text = e.target.data.resultName; 

但是,當我嘗試,flashNumber最終會爲flashNumber和flashName一起搗碎,像2Tom or 7Mary或類似的東西。 我試圖在PHP的2個值之間打印<br>,但我仍然得到相同的結果。我知道我可以將PHP分成2個PHP文件並從每個文件中獲得一個值,但這會有點荒謬,因爲在我的程序中我需要獲得很多值。

是否有另一種方法將值從PHP發送到Flash,以便我可以發送多個值?或者,有沒有辦法使用printecho發送多個值?

非常感謝您提前。

回答

1

您可以通過以標準URL編碼變量格式輸出數據來完成此操作。 (您需要一個應用程序使用不同的變量符號 - 否則它認爲一切後的第=是值)

如:print "resultNumber=$somethingNumber&resultName=$somethingName";

然後AS3應該會自動工作,你正在嘗試的方式。


您也可以按其他人的建議輸出XML或JSON。

JSON

PHP

<?php 
$arr = array(somethingName, somethingNumber); 

echo json_encode($arr); 
?> 

AS3

var jsonObj = JSON.parse(e.target.data); 
trace(jsonObj.somethingName, jsonObj.somethingNumber); 

XML

PHP

<?php 
$string = <<<XML 
<data> 
<somethingName> 
    blah blah blah 
</somethingName> 
<somethingNumber> 
    12345 
</somethingNumber> 
</data> 
XML; 

$xml = new SimpleXMLElement($string); 

echo $xml->asXML(); 

?> 

AS3

myXML = new XML(e.target.data); 
trace(myXML.somethingName, myXML.somethingNumber); 
+0

非常感謝您的幫助,我認爲使用&符會給我帶來一個像使用逗號一樣的錯誤......我還會保留JSON和在情況下記住XML方法。再次感謝。 – MNOPYZ

0

更好地使用一些數據格式,而不是將數據作爲純文本傳遞 - XML或JSON是一個好主意。

+0

請考慮更新你的答案更加有用。因爲這是更多的評論,並沒有真正顯示如何做任何事情 – BadFeelingAboutThis