我正在尝试通过将动画与递归链接在一起来使用 d3 运行动画。我有一个函数 animate 像这样调用自己,直到所有动画链接在一起
(function animate(transition) {
// code here
animate(transition.transition())
})(selection.transition());
可视化本身有效,但我试图跟踪该函数被调用的次数,以便我可以在屏幕上与动画同步显示它。然而,递归在第一个转换完成之前将转换链接在一起,所以我的计数器总是只是最后一个转换的编号。
这是一个 jsfiddle,它显示了我正在尝试做的事情。奇怪的是圆的半径设置正确,即在设置属性时它得到正确的计数,而在同一个动画调用中它是不正确的。我查看了旧的堆栈溢出问题,并且查看了 d3 文档,但我找不到在整个递归过程中跟踪计数的好方法。有谁知道这样的方式?