Share Posted October 9, 2013 hello hello.. i know instead of using setInterval(), we can use delayedCall() for GSAP.. what would be the clearInterval() equivalent in GSAP. In setInterval() when you declare it in a variable, returns an ID (unique identifier) which is used in clearInterval() to cancel the timer var intervalID = window.setInterval(animate, 500); // later called to cancel the timer window.clearInterval(intervalID); so my question is.. what is the equivalent in GSAP to cancel a specific delayedCall() instances... since if i use killAll() //kill only delayedCalls TweenMax.killAll(false, false, true, false); it kills all delayed calls, but not just a specific delayedCall().. I could use killDelayedCallsTo() which kills all of the delayedCalls to a particular function.. but is there a method to kill specific instances of delayedCalls that might have multiple delayedCall() being used, like when using clearInterval? does delayedCall() return a unique identifier like setInterval() does to reference later for cancelling / killing? Below i can use the following to cancel timers at different times due to the instances referenced with the setInterval() .. var intervalID = window.setInterval(animate, 500), intervalID2 = window.setInterval(animate, 1000); // later called to cancel timer 1 window.clearInterval(intervalID); // called again later to cancel timer 2 window.clearInterval(intervalID2); so what would be the equivalent to cancelling the delayedCall() on different instances like above using setInterval().. instead of cancelling all tweens associated with a function that you pass to killDelayedCallsTo() ?let me know if i need to clarify more, and if the way im explaining my question is long winded? Link to post Share on other sites
Share Posted October 9, 2013 HI Jonathan, I think TweenLite.killTweensOf() will do the trick Kills all the tweens (or specific tweening properties) of a particular object or delayedCalls to a particular function. ... To kill all the delayedCalls that were created like TweenLite.delayedCall(5, myFunction);, you can simply call TweenLite.killTweensOf(myFunction); because delayedCalls are simply tweens that have their target and onComplete set to the same function (as well as a delay of course). TweenLite.delayedCall(2, someFunction); //to kill TweenLite.killTweensOf(someFunction); If you have remaining questions, just let us know. 2 Link to post Share on other sites
Author Share Posted October 9, 2013 thanks Carl.. i will test that out.. do you know if delayedCall() returns anything when used in a variable instance like setInterval() does ?? Link to post Share on other sites
Share Posted October 9, 2013 Yup, delayedCall() returns a TweenLite instance. delayedCall docs delayedCall(delay:Number, callback:Function, params:Array = null, scope:* = null, useFrames:Boolean = false):TweenLite ... Returns TweenLite — TweenLite instance So, since its a tween you could kill it by name: var myDelayedCallback = TweenLite.delayedCall(2, someFunction); myDelayedCalback.kill(); 1 Link to post Share on other sites
Author Share Posted October 9, 2013 Awesome .. I missed that.. thanks again Carl.. Link to post Share on other sites
Share Posted October 10, 2013 Also, just to clarify, TweenLite.delayedCall() is an analog to setTimeout(), not setInterval(). // setTimeout() var timeout = TweenMax.delayedCall(2, function() { // do something once after 2 seconds }); // setInterval() var interval = new TimelineMax({ repeat: -1 }).call(function() { // do something every 2 seconds }, null, null, 2); ... interval.kill(); 1 Link to post Share on other sites