0

このアクションスクリプトコードを使用して、phpからflashにいくつかの変数を渡そうとしています:

public function gameOver(score:Number) 
{
    totalScore.text = score.toString();

    var scriptVars:URLVariables = new URLVariables();
    scriptVars.score = score;

    var scriptLoader:URLLoader = new URLLoader();

    var scriptRequest:URLRequest = new URLRequest("checkScores.php");
    scriptRequest.method = URLRequestMethod.POST;
    scriptRequest.data = scriptVars;

    scriptLoader.load(scriptRequest);
    scriptLoader.addEventListener(Event.COMPLETE, handleLoadSuccessful);
    scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);
}

function handleLoadSuccessful(e:Event):void
{
    trace("Scores Loaded");
    var vars:URLVariables = new URLVariables(e.target.data);
    nickname1.text = vars.nickname;
    score1.text = vars.score;
}

function handleLoadError($evt:IOErrorEvent):void
{
    trace("Load failed.");
    nickname1.text ="error";
}

そして、このphpコード:

<?php
    ... some code for the mysql connection and select sentence ...

        $topScores = mysqli_query($con, $topScores);
        $topScores = mysqli_fetch_array($topScores);
        echo "&nickname=$topScores[nickname]&score=$topScores[score]";

?>

どちらもエラーなしで実行されます。問題は、フラッシュで取得するのは変数の値ではなく、変数の名前であるということです。つまり、vars.nickname で取得するのは

$topScores[nickname] 

および vars.score の場合

$topScores[score]

php を単独で実行すると、次のようになります。

&nickname=jonny&score=100

これは私が取得しようとしている実際の変数値です。どんな助けでも大歓迎です。

4

1 に答える 1

0

フラッシュからphpファイルをテキストファイルとしてロードしているだけかもしれません。次の行を変更できますか。

new URLRequest("checkScores.php");

次のようなものに:

new URLRequest("http://localhost/checkScores.php");

または、質問で言ったように「実行」したときにブラウザのアドレスバーに表示されるもの。

于 2013-07-25T05:39:48.463 に答える