2016-05-02 12 views
1

WebオーディオAPIの2つのパラメータを制御する関数を作成したい場合、これらのパラメータはhtml5のinput要素に従って変化します。私はそれが必要に応じて動作させる方法を知らない。2つの要素とWebオーディオAPIを持つjavascript関数

これは、入力されたスライダーのためのコードです:

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

と機能:

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

私は入力に別のパラメータを追加したい、のような:

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

関数の第2パラメータを置換する

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

さらに良い、私は「gain_3.gain」またはそのようなパラメータを定義することができれば...

が、私はこれを試してみましたが、動作しません。

私はそれを行う方法を知らない、誰かが私を助けてくれますか?ありがとう!あなたの第二の機能で

答えて

0

は、あなたがtype

BrownVol = function(element, type) { 

に渡す。しかし、あなたはこれをプロパティとして認識されていないこの

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

typeようにそれを呼び出すようにしてみてください。それがこのプロパティで、名前自体が可変でない場合は、パラメータとして渡すべきではありません。場合によってはgain_3、時にはgain_4の場合は、gain['value'] = 3などのキーではなく、値として指定する必要があります。gainを渡すと、目的の値が得られます。

+0

あなたの答えをありがとう! タイプは変数です、私はいくつかの同じ名前のフォーマットを持っています:gain_1〜gain_4 Web Audio Apiでは、gain_xという名前のgainNodesを定義しましたが、そのgainNodeのゲイン値をスライダーで変更します – Fox

+0

次に絶対にキー値のペア。変数名自体を値として使用しようとするのではなく、値の変更を誰にも一貫した表現で渡します。必要に応じて、多次元配列を使用します。 – Goose

関連する問題