我似乎无法接受可变数据,在咨询Adobe AS3参考资料时,我似乎正在做正确的事情,我认为这是PHP的一个问题,但不确定。
PHP - 此文件与AS3 doc
位于同一目录中<?php
$testData = 4;
echo "testData=" . $testData
?>
AS3
public function URLLoaderDataFormatExample()
{
var request:URLRequest = new URLRequest("PHPTest.php");
var variables:URLLoader = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.VARIABLES;
variables.addEventListener(Event.COMPLETE, completeHandler);
try
{
variables.load(request);
}
catch (error:Error)
{
trace("Unable to load URL: " + error);
}
}
private function completeHandler(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
trace(event.target.data.testData)
}
trace语句应该打印4.但是,它只打印undefined。
答案 0 :(得分:1)
如果我没记错的话,我自己也必须面对这个问题。
我发现的是,有时(没有找到实际原因)PHP发送的第一个值无效甚至根本不发送。
我已经习惯在回音的开头添加一个非重要的值,例如:
echo 'unimportantvar=nothing&myXML='.$xml;
似乎总能解决这个问题。
答案 1 :(得分:1)
这样的事情应该这样做。
private function completeHandler(event:Event):void{
var loader:URLLoader = URLLoader(event.target);
var urlVars:URLVariables = new URLVariables(loader.data);
trace(urlVars.testData)
}
答案 2 :(得分:1)
Actionscript代码看起来没问题。
Flash对变量之前/之后的空格非常敏感。请注意,如果您在?>
之后或<?php
之前有换行符,则会在回复中给出。
要确保PHP出现问题,请将.php文件替换为简单的.txt文件,只替换文本testData=4
,不要添加任何新行或空格,并尝试加载。
如果加载正确,则问题出在PHP文件中 - 导航到浏览器中的PHPTest.php
并检查是否有其他内容被插入。