我有一个功能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/ –