Есть ли способ выбрать веб-аудио узел с переменной вместо имени узла? - PullRequest
0 голосов
/ 19 января 2019

У меня есть банк из 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 голосов
/ 19 января 2019

В вашем примере первая строка кода вычисляет строку.Допустим, что eleNum равно 3. Тогда значением oscNum будет просто строка "osc3".

Если вы хотите выбрать ваши осцилляторы по их индексу, вы можете, например, использовать массив для храненияих.

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

Позже вы можете выбрать отдельный генератор по его индексу и установить тип.

oscillators[eleNum].type = "triangle";
...