我正在为JS课编写作业,老师希望我们在射击时发出武器声音,但在弹药不在时停止发出声音。 当枪射击时,我有声音效果,但是当用0弹药单击时,它会继续发出声音。
我尝试执行else {}函数,但这会破坏浏览器中的“弹药显示”,并且声音仍会继续播放。
HTML:
<input type="button" value="Heal" class="shoot" onclick="shoot();">
<audio id="heal" src="sound/heal.mp3">
JS:显示弹药,最多可发射6张枪,储备6张枪,并且每次发射时都会递减计数。
function shoot() {
if (currentAmmo > 0) {
currentAmmo--;
}
var shoot = document.getElementById("shoot");
shoot.play();
updatescreen();
function updatescreen() {
document.getElementById("total-ammo").innerHTML = "Bullets in Gun:</br>" + totalAmmo;
document.getElementById("current-ammo").innerHTML = "Reload Ammo:</br>" + currentAmmo;
}
答案 0 :(得分:0)
您只需要在if条件内移动播放命令。
if (currentAmmo > 0) {
currentAmmo--;
var shoot = document.getElementById("shoot");
shoot.play();
}
updatescreen();
答案 1 :(得分:0)
将play
调用放在您的if
语句中,因此仅在该语句为true时才播放:
function shoot() {
if (currentAmmo > 0) {
currentAmmo--;
document.getElementById("shoot").play();
}
}