AS3从PHP接收数据

4

我似乎无法接收变量数据,但是我在查阅Adobe AS3参考文档时做的一切都是正确的。我认为这是PHP的问题,但不确定。

PHP - 这个文件与AS3文档在同一个目录下。

<?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)
}

追踪语句应该打印出4,但实际上只打印了未定义(undefined)。
3个回答

1

如果我没记错的话,我也曾经自己面对过这个问题。

我发现有时候(没有找到确切原因),PHP 发送的第一个值会被置空甚至根本没有发送。

我习惯在 echo 的开头添加一个不重要的值,比如:

echo 'unimportantvar=nothing&myXML='.$xml;

似乎总是解决了那个问题。


1

应该是这样的。

private function completeHandler(event:Event):void{
    var loader:URLLoader = URLLoader(event.target);
    var urlVars:URLVariables = new URLVariables(loader.data);
    trace(urlVars.testData)
}

1

Actionscript 代码看起来没问题。

Flash 对变量前后的空格非常敏感。请注意,如果在 ?> 后面或 <?php 前面有换行符,则它将作为响应的一部分给出。

为确保 PHP 是问题所在,请使用一个简单的 .txt 文件替换 .php 文件,只包含文本 testData=4,没有额外的换行符或空格,并尝试加载它。

如果这样可以正常加载,则问题出在 PHP 文件上 - 在浏览器中导航到 PHPTest.php 并检查是否有其他插入内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接