Well, proving that a fresh set of eyes usually solves a problem quickly...
I somehow missed the TweenCollection & Tween objects that have replaced AnimationCollection & Animation. They are not in the online documentation, however, and examples of both have all been removed from Sandcastle so I'm not sure how much the devs actually want this used.
That being said, the following changes worked perfectly for me.
I'll just leave this here on the off chance it helps someone else
Previous code:
var anim;
function update(value) {
billboard.position = new Cesium.Cartesian3(value.x, value.y, value.z);
}
function complete() {
anim = undefined;
}
// animate
anim = anim || scene.animations.add({
onUpdate: update,
onComplete: complete,
startValue: {
x: b.position.x,
y: b.position.y,
z: b.position.z
},
stopValue: {
x: new_pos.x,
y: new_pos.y,
z: new_pos.z
},
duration: 1000,
easingFunction: Cesium.Tween.Easing.Quartic.Out
});
New code:
var tween;
function update(value) {
billboard.position = new Cesium.Cartesian3(value.x, value.y, value.z);
}
function complete() {
tween = undefined;
}
// animate
tween = tween || scene.tweens.add({
update: update,
complete: complete,
startObject: {
x: b.position.x,
y: b.position.y,
z: b.position.z
},
stopObject: {
x: new_pos.x,
y: new_pos.y,
z: new_pos.z
},
duration: 1.0,
easingFunction: Cesium.EasingFunction.QUARTIC_OUT
});