2016-05-02 7 views
1

Ich möchte eine Funktion zur Steuerung von zwei Parametern in Web Audio API, diese Parameter ändern sich entsprechend einem Eingabeelement auf HTML5. Ich weiß nicht, wie man es nach Bedarf arbeiten lässt.Javascript-Funktion mit zwei Elementen und Web-Audio-API

Dies ist der Code für die Eingangsregler:

<div> 
    <input type="range" min="0" max="100" value="0" oninput="BrownVol(this);" />BrownVol</input> 
</div> 

und die Funktion:

BrownVol = function(element) { 
    var fraction = parseInt(element.value)/parseInt(element.max); 
    this.gain_3.gain.value = fraction * fraction; 
}; 

Ich möchte einen anderen Parameter in den Eingang zu verwenden, wie:

<div> 
    <input type="range" min="0" max="100" value="0" oninput="BrownVol(this, gain_3);" />BrownVol</input> 
</div> 

und ersetzen Sie den zweiten Parameter in der Funktion

BrownVol = function(element, type) { 
    var fraction = parseInt(element.value)/parseInt(element.max); 
    this.type.gain.value = fraction * fraction; 
}; 

Und noch besser, wenn ich die Parameter wie „gain_3.gain“ oder so ...

diese

Ich versuchte definieren könnte, aber nicht funktioniert.

Ich weiß nicht, wie es geht, könnte mir bitte jemand helfen? Vielen Dank!

Antwort

0

In Ihrer zweiten Funktion, übergeben Sie in type

BrownVol = function(element, type) { 

Aber Sie versuchen, es zu nennen wie diese

this.type.gain.value = fraction * fraction; 

type wird als Eigenschaft dieser nicht erkannt. Wenn es eine Eigenschaft davon ist und der Name selbst nicht variabel ist, sollten Sie ihn nicht als Parameter übergeben. Wenn es manchmal gain_3 und manchmal gain_4 ist, sollten Sie es als Wert haben, nicht einen Schlüssel, wie gain['value'] = 3, dann wird in gain übergeben bekommen Sie den gewünschten Wert.

+0

Danke für Ihre Antwort! Typ ist eine Variable, ich habe mehrere mit dem gleichen Namen Format: gain_1 bis gain_4 In Web Audio API habe ich GainNodes mit dem Namen gain_x definiert, ich möchte den Gain-Wert des GainNode mit einem Schieberegler ändern – Fox

+0

Dann verwenden Sie definitiv a Schlüsselwertpaar. Anstatt zu versuchen, den Variablennamen selbst als Wert zu verwenden, übergeben Sie ihm eine konsistente Darstellung, deren Wert sich ändert. Verwenden Sie bei Bedarf ein mehrdimensionales Array. – Goose

Verwandte Themen