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

trace ステートメントは 4 を出力するはずですが、undefined だけが出力されます。

4

3 に答える 3

1

私の記憶が正しければ、私もすでにその問題に自分自身で直面しなければなりません。

私が発見したのは、PHP によって送信される最初の値が無効になるか、まったく送信されない場合があることです (実際の理由は見つかりませんでした)。

次のように、エコーの先頭に重要ではない値を追加することに慣れていました。

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

常にその問題を解決しているように見えました。

于 2012-10-11T18:45:25.090 に答える
1

Actionscript コードは問題ないようです。

Flash は、変数の前後の空白に非常に敏感です。?>、または の前に改行がある場合<?phpは、応答の一部として提供されることに注意してください。

PHP に問題があることを確認するには、.php ファイルを単純な .txt に置き換え、テキストのみでtestData=4改行や空白を追加せず、それを読み込んでみます。

これが正しく読み込まれる場合、問題は PHP ファイルにありますPHPTest.php。ブラウザで に移動し、何かが追加で挿入されているかどうかを確認してください。

于 2012-10-11T20:57:46.347 に答える
1

このような何かがそれを行う必要があります。

private function completeHandler(event:Event):void{
    var loader:URLLoader = URLLoader(event.target);
    var urlVars:URLVariables = new URLVariables(loader.data);
    trace(urlVars.testData)
}
于 2012-10-11T20:46:33.327 に答える