2017-12-22 23 views
0

実行時に値を入力して値を変更しようとしていますが、動作させることができません。私は間違いがない。 onSlideで周波数を変更すると、サウンドはまだ800で再生されます。変更する必要があります。実行時の値を変更する

import $ from 'jquery'; 
import rangeslider from 'rangeslider.js'; 
import T from 'timbre'; 

window.$ = $; 

    $(document).ready(() => { 

     var f = 800; 

     T("sin", {freq:f, mul:0.5}).play(); /*plays a continous sound*/ 

     $('input[type="range"]').rangeslider({ 
      polyfill : false, 
      onSlide: function() { 
       var ff = 440; /*changing frequancy, but the tone is still the same.*/ 
       f = ff; 
      } 
     }); 

    }); 
+1

変数fを変更しても、再度「T」は呼び出されません。 'T'とは何ですか?既存のインスタンスを変更できますか? – Bergi

+0

申し訳ありません、コードを編集しました。 Tはtimbre.jsのインスタンスです。サウンドライブラリー。 – user2952238

+0

スライダーが取得するすべての変更イベントでplay()が呼び出されます。ちょうど()の – user2952238

答えて

1

Getting Startedに示すように、あなたがsetmethod後で呼び出すことができるように変数にインスタンスを格納する必要があります。

$(document).ready(() => { 
    const tone = T("sin", {freq:f, mul:0.5}).play(); /*plays a continous sound*/ 
    $('input[type="range"]').rangeslider({ 
     polyfill : false, 
     onSlide: function() { 
      tone.set({freq: 440 }); /* changing frequency of the tone */ 
     } 
    }); 
}); 
+0

実際に2秒前に見つかりました。しかし、ありがとう! – user2952238

関連する問題