我试图将多个值从PHP发送到Flash。我知道如何使用PHP的print
或echo
发回一个值,然后使用e.target.data.
在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分成两个PHP文件并从每个文件中获取一个值,但这有点荒谬,因为在我的程序中我需要获得很多值。
还有另一种方法可以将值从PHP发送到Flash,以便我可以发送超过1个值吗?或者,有没有办法使用print
或echo
发送超过1个值?
非常感谢你。
答案 0 :(得分: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);
答案 1 :(得分:0)
更好地使用一些数据格式而不是将数据作为纯文本传递 - XML或JSON是一个好主意。