How to detect Tween.js animation finished?
Asked Answered
A

2

6

I am using this code to animate camera in scene using tween.js Does there a exists any done or finshed event?

            tween : function (target){
                var position = camera.position;
                var tween = new TWEEN.Tween(position).to(target, 1800);

                tween.onUpdate(function(){
                    camera.position.x = position.x;
                    camera.position.y = position.y;
                    camera.position.z = position.z;
                    if (android){
                        camera.lookAt(android.position)
                    }
                });
                tween.easing(TWEEN.Easing.Bounce.Out);
                tween.start(); 
            },
Armpit answered 5/2, 2015 at 12:9 Comment(1)
FYI for others while im lurking around tween.js posts - this snippet didn't need to set the position again in the onUpdate, it was already set by Tween at this point. It's just assigning its own values back to itself.Aspen
K
14

Provide an onComplete function:

tween.onComplete(function() {
  console.log('done!')
});

Docs

Koreykorff answered 5/2, 2015 at 12:14 Comment(0)
D
4

As of April 2018, .onComplete doesn't exist in the docs. Rather you can use the .call function then pass a custom function.

   createjs.Tween.get(target).to({alpha:1}, 1000).call(handleComplete);
    function handleComplete() {
        //Tween complete
    }

See docs: https://www.createjs.com/docs/tweenjs/modules/TweenJS.html

Durrett answered 18/4, 2018 at 5:25 Comment(1)
this is a different library, one is tween.js the other is tweenjs.Aspen

© 2022 - 2024 — McMap. All rights reserved.