我有一個功能triggerWave()
,它使畫布上的點以波形形式生成動畫。我正在使用d3.ease('quad-in')
進行緩衝,我想用d3.timer()
使triggerWave()
函數調用超過200ms
時間範圍。我在找到d3.timer上的教程或例子時運氣不佳。如何在d3 V3中使用計時器?
triggerWave() {
//function logic
let count = 0;
let xScale = d3.scale.linear().range([1,2]); // want the value to change from 1 to 2.
let zScale = d3.scale.linear().domain([0, 200]); // 200 ms.
let value = xScale(d3.ease('quad-in')(zScale(count)));
if(count < 200){
count++;
d3.timer(() => triggerWave());
} else {
// do something
}
this.wave.next({currentFrame: value});
}
當我如上打電話d3.timer()
,該triggerWave()
函數被調用無限的時間和永不停歇。我想操縱或控制時間。在我的情況下,我想要爲200ms
觸發定時器()。
如何理解如何使用d3.timer()
函數?
Tums,我寫了一個答案,只有在發佈之後,我注意到你正在使用D3 v3。不幸的是,在v3中沒有'd3.timeout',但是你可以用我在vanilla JS的答案中提出的同樣的方法,也就是'setTimeout':https://jsfiddle.net/gerardofurtado/ffv3r5gn/ –