如何循环遍历一系列音频对象

爆炸

我最近开始学习Javascript,并且正在开发我的第一个网络嵌入式游戏,该游戏是一款音乐益智游戏,它使用十二音序贯音乐的基本原理。我的游戏大部分都已完成,您可以在这里找到它但是我在音频方面遇到了麻烦。当用户解决难题时,我确实设法使它播放声音,但我无法真正通过游戏板上显示的音符来播放声音。

这是我做的事情:我创建了一个包含12个音频对象的数组,其中包含从C到B的每个音符。然后,我创建了一个名为“ playToneRow()”的方法,该方法将它们全部播放,并由数字数组ToneRow确定顺序。笔记[]。这是代码:

this.playToneRow = function()
{
    for (var i in this.notes)
    {
        noteSound[this.notes[i]].play();
    }
};

但是此方法只播放音调行的最后一个音符。现在,我应该提到的是,我在网上找到的各种教程将我对Javascript的知识汇集在一起​​,我可以肯定的是,我公认的基本编码技能存在很大差距。但是我发现问题在于我在声音之间没有留任何空间,因此它试图同时播放所有声音,但是它没有足够的通道,因此只能播放最后一个。所以我尝试了这个:

this.playToneRow = function()
{
    var x = 0;
    for (var i in this.notes)
    {
        x = this.notes[i];
        setTimeout(function()
        {
            noteSound[x].play();
        }, 700);
    }
};

现在我真的不确定我是否正确使用了setTimeout(),但是我猜不是,因为它再次只播放了最后一个音符。我知道所有12个wav文件都将被加载,因为如果更改音色行,它将演奏不同的音符。因此,它确实可以访问所有音频文件。只是让它可以全部播放(并按正确的顺序)即可。

谢谢!

下山羊

for不会真的在乎您setTimeout,请尝试:

this.playToneRow = function()
{
    var x = 0,
        length = 0,
        j = 0;
    for (var i in this.notes)
    {
        length += 1;
    }

    function runIteration () {
        x = this.notes[j];

        setTimeout(function()
        {
            noteSound[x].play();
        }, 700);

        if (j === length) return;

        j += 1;

        setTimeout(runIteration, 700);

    }

    runIteration();

};

希望能做到。我看过您的代码,但是它有点复杂,所以我无法确定this.notes是对象还是数组

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何遍历一系列自定义对象?

来自分类Dev

如何遍历一系列结构

来自分类Dev

如何遍历对象并匹配对象中一系列数字中的数字?

来自分类Dev

如何在一系列子图中循环遍历轴元素?

来自分类Dev

如何在R中使用map遍历对象以创建一系列gt表

来自分类Dev

如何告诉CasperJS遍历一系列页面

来自分类Dev

如何使用Bash遍历一系列文件

来自分类Dev

遍历一系列字典

来自分类Dev

遍历一系列函数

来自分类Dev

遍历一系列函数

来自分类Dev

Ansible如何循环执行一系列任务?

来自分类Dev

如何循环显示一系列Google Spreadsheets

来自分类Dev

如何从for循环matlab存储一系列向量

来自分类Dev

如何打破循环中的一系列异步操作?

来自分类Dev

如何在ansible中循环一系列任务

来自分类Dev

如何使用for循环构建一系列承诺的响应?

来自分类Dev

如何从Python文件中解脱一系列对象?

来自分类Dev

循环一系列withAnimation函数

来自分类Dev

我循环播放一系列音频文件的方法是否有错误?

来自分类Dev

使用字符串循环遍历一系列行

来自分类Dev

如何制作一系列句子?

来自分类Dev

如何打印一系列纸张?

来自分类Dev

如何测试一系列互动?

来自分类Dev

如何制作一系列物品

来自分类Dev

如何串联一系列细胞

来自分类Dev

如何减少一系列if语句?

来自分类Dev

如何编写一个使用RSpec遍历一系列值的测试?

来自分类Dev

在张量流中,如何遍历存储在张量中的一系列输入?

来自分类Dev

如何遍历文件以创建一系列新的.docx文件?