Я очень запутался и застрял, создавая музыкальную игру с использованием инфраструктуры 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.readyState
а также xmlhttp.status
верните 4 и 200 через некоторое время и предупредите об успехе. Но песня все еще не играла, вот скриншот.
Стоп-текст является предупреждением о том, что песня не воспроизводилась.
Я не могу понять, почему он не играл даже этот вар pathsong
не является нулевым
Я новичок в Phaser и все еще учусь программированию.
Пожалуйста, не вините меня, и извините, если мой английский плохой. Я очень стараюсь объяснить. ^^ v
Вероятно, вы должны запустить преднагрузки () Метод сразу после переопределения pathsong переменная, когда ответ AJAX был успешно получен.
Попробуй добавить preload();
после линии pathsong = xmlhttp.responseText;
Других решений пока нет …