Javascript 动画+;在设置超时功能中播放不起作用的声音

Javascript 动画+;在设置超时功能中播放不起作用的声音,javascript,jquery,Javascript,Jquery,因此,注释警报可以工作,下面的两个注释也可以在它们所在的位置工作,但它们在我当前使用它们的函数中不起作用。我猜这是一个作用域问题,但我想我应该问一下,因为我还不清楚,既然我把它从父函数移到了子函数,它怎么会是一个作用域问题 $(document).ready(function(){ // on/off button var power = false; var start = false; var strict = false; var simon = [

因此,注释警报可以工作,下面的两个注释也可以在它们所在的位置工作,但它们在我当前使用它们的函数中不起作用。我猜这是一个作用域问题,但我想我应该问一下,因为我还不清楚,既然我把它从父函数移到了子函数,它怎么会是一个作用域问题

$(document).ready(function(){
    // on/off button
    var power = false;
    var start = false;
    var strict = false;
    var simon = [];
    var player = [];
    var green = $(".green-button"); 
    var red = $(".red-button");
    var blue = $(".blue-button");
    var yellow = $(".yellow-button");
    var num;
    var moves = [green, red, blue, yellow];
    var greenSound = new Audio('https://s3.amazonaws.com/freecodecamp/simonSound1.mp3');
    var redSound = new Audio('https://s3.amazonaws.com/freecodecamp/simonSound2.mp3');
    var blueSound = new Audio('https://s3.amazonaws.com/freecodecamp/simonSound3.mp3');
    var yellowSound = new Audio('https://s3.amazonaws.com/freecodecamp/simonSound4.mp3');
    var sounds = [greenSound, redSound, blueSound, yellowSound];
    var soundNums = [];
    var count = 0;

    // example of flashing $(".div").fadeOut(200).fadeIn(200)

    $('#on-button').click(function(){
        $(this).toggleClass('on');
        if(power === true)
        {
            power = false;
            if(start === true)
                {
                    start = false;
                    $('#start-button').toggleClass('on');
                }
            if(strict === true)
                {
                    strict = false;
                    $('#strict-button').toggleClass('on');
                }
        }
        else
        {
            power = true;
        }
    });

    $('#start-button').click(function(){
        if(power === true)
        {
                $(this).toggleClass('on');
                if(start === true)
                {
                    start = false;
                }
                else
                {
                    start = true;
                    while(count < 20)
                        {
                            num = Math.floor(4*Math.random());
                            simon.push(moves[num]);
                            soundNums.push(num);
                            for(var i = 0; i < simon.length; i++)
                                {
                                    var timeoutID;
                                    function delayMove() {
                                        timeoutID = window.setTimeout(move, 500);
                                    }
                                    function move() {
                                        $(simon[i]).fadeOut(200).fadeIn(200);
                                        (sounds[soundNums[i]]).play();
                                        //alert('you suck');
                                    }
                                    function clearAlert() {
                                        window.clearTimeout(timeoutID);
                                    }
                                    delayMove();
                                }
                            count++;
                            $("p").text(count); 
                        }

                }
        }
    });

    $('#strict-button').click(function(){
        if(power === true)
        {
                $(this).toggleClass('on');
                if(strict === true)
                {
                    strict = false;
                }
                else
                {
                    strict = true;
                }
        }
    }); 


});
$(文档).ready(函数(){
//开/关按钮
无功功率=假;
var start=false;
var-strict=false;
var simon=[];
var-player=[];
绿色变量=$(“.green按钮”);
变量红色=$(“.red按钮”);
变量蓝色=$(“.blue按钮”);
黄色变量=$(“.yellow按钮”);
var-num;
变量移动=[绿色、红色、蓝色、黄色];
var greenSound=新音频文件https://s3.amazonaws.com/freecodecamp/simonSound1.mp3');
var redSound=新音频文件https://s3.amazonaws.com/freecodecamp/simonSound2.mp3');
var blueSound=新音频文件https://s3.amazonaws.com/freecodecamp/simonSound3.mp3');
var yellowSound=新音频文件https://s3.amazonaws.com/freecodecamp/simonSound4.mp3');
var声音=[绿色声音、红色声音、蓝色声音、黄色声音];
var soundNums=[];
var计数=0;
//闪烁$(“.div”).fadeOut(200).fadeIn(200)的示例
$(“#打开按钮”)。单击(函数(){
$(this.toggleClass('on');
如果(功率===真)
{
功率=假;
如果(开始===真)
{
开始=错误;
$(“#开始按钮”).toggleClass('on');
}
如果(严格===真)
{
严格=错误;
$(“#严格按钮”).toggleClass('on');
}
}
其他的
{
功率=真;
}
});
$(“#开始按钮”)。单击(函数(){
如果(功率===真)
{
$(this.toggleClass('on');
如果(开始===真)
{
开始=错误;
}
其他的
{
开始=真;
同时(计数<20)
{
num=Math.floor(4*Math.random());
simon.push(移动[num]);
soundNums.push(num);
for(var i=0;i
请稍等。。什么是移动?西蒙的定义是什么?什么定义了num?什么定义了声音?????我们需要所有的数据才能看到这一点?在定义它们之后,您没有调用函数
move()
clearAlert()
,这就是为什么它们没有被执行的原因。现在有完整的代码了。不是每500毫秒延迟移动一次呼叫移动吗?请稍等。。什么是移动?西蒙的定义是什么?什么定义了num?什么定义了声音?????我们需要所有的数据才能看到这一点?在定义它们之后,您没有调用函数
move()
clearAlert()
,这就是为什么它们没有被执行的原因。现在有完整的代码了。delayMove调用不是每500毫秒移动一次吗?