当网址不是

时间:2016-04-11 20:09:09

标签: javascript php ajax phaser-framework

我真的很困惑,并且使用Phaser js框架构建了一个音乐游戏。

我需要保存在localhost中的路径音频。为了获得这条路,我使用了AJAX。这是我在移植器中的AJAX代码:

function preload()
{
    game.load.audio('song', pathsong);
}

function getSong()
{
    var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function()
        {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
                pathsong = xmlhttp.responseText;
                alert("succes");
                alert(pathsong);
            }
            else
            {
                alert(xmlhttp.readyState);
                alert(xmlhttp.status);
            }
        };
        xmlhttp.open("GET", "getsong.php" , true);
        xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlhttp.send();     
}

这是我的getsong.php

<?php

$path = "asset/audio/music/1.mp3";
echo ($path);
?>

xmlhttp.readyStatexmlhttp.status会在一段时间内返回4和200并提供成功警报。但这首歌仍然没有播放,这里是它的截图。

The stop text is an alert that the song didn't play.

即使var pathsong不为空,我也无法理解为什么它没有播放。 我是phaser的新手,还在学习编程。 请不要怪我,对不起,如果我的英语不好。我真的很努力地解释。 ^^ v

1 个答案:

答案 0 :(得分:0)

在成功收到AJAX响应后重新定义 pathsong 变量时,可能应立即运行 preload()方法。

尝试在preload();

行之后添加pathsong = xmlhttp.responseText;