AS3从PHP接收数据

时间:2012-10-11 17:57:07

标签: php actionscript-3

我似乎无法接受可变数据,在咨询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。

3 个答案:

答案 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并检查是否有其他内容被插入。