有没有一种方法可以选择一个带有节点名称的变量的Web音频节点?

时间:2019-01-19 16:21:57

标签: javascript html5 web-audio web-audio-api

我有一个由5个振荡器节点组成的库,并希望能够选择特定节点的波形。所有振荡器的名称都为osc1,osc2,osc3等,我希望能够选择要使用元素id(1、2、3等)更改的振荡器

这是我认为可行的方法:

var oscNum = ("osc"+eleNum)

if (element.value == 1)
{
    oscNum.type = 'square';
}

else if (element.value == 2)
{
oscNum.type = "sawtooth";
}

else if (element.value == 3)
{
oscNum.type = "triangle";
}

else if (element.value == 0)
{
oscNum.type = "sine";           
}

但是没有,我想知道是否有可能使用var.type而不是osc1.type来选择节点。

1 个答案:

答案 0 :(得分:1)

在您的示例中,第一行代码正在计算字符串。假设eleNum等于3。那么oscNum的值就是字符串"osc3"

如果要通过振荡器索引选择振荡器,则可以使用数组存储它们。

const oscillators = [ osc0, osc1, osc2, osc3 ];

稍后,您可以通过其索引选择单个振荡器并设置类型。

oscillators[eleNum].type = "triangle";