Share Posted August 16, 2021 Hi, after debugging my own even listeners cleanup using Chrome debug console, I noticed that GSDevTools, when killed, forget to clean its own event listeners. For example, in the image bellow I killed/recreated GSDevTools four times (to feed it with different timelines, as there is no functionality to do it without recreating the beast ^^). Are you aware of that? It's not a big deal for me right now though. Link to comment Share on other sites More sharing options...
Share Posted August 16, 2021 Hm, are you sure you called kill() on all your instances? I see in the code that it removes the "keydown" event listener in .kill(). If you still think there's an issue, please provide a minimal demo and we'd be glad to take a peek. Link to comment Share on other sites More sharing options...
Author Share Posted August 17, 2021 sensible code removed That's the only code I'm allowed to share. I breakpoint on previousGSDevTools.kill() to check the console each time I change the timeline to display (so when I need to kill GSDevToolsprevious instance), thereby my screenshot above. Link to comment Share on other sites More sharing options...
Share Posted August 17, 2021 Hm, I'm curious about a few things: Are you a Club GreenSock member under a different account or something? Or are you only using the trial version? I'm just confused about how you have access to it if your account shows you're not a member. What version of GSDevTools are you using? Please make sure it's the latest. Couldn't your code be simplified to this?: let previousGSDevTools = GSDevTools.getById("AMjs_GSDevTools"); let previousTime = globalTimeline.time(); previousGSDevTools && previousGSDevTools.kill(); GSDevTools.create({ id: "AMjs_GSDevTools", container: "#GSDevToolsContainer", animation: globalTimeline }); gsap.delayedCall(0.2, () => globalTimeline.time(previousTime)); Like I said, in the file I'm looking at, the keydown event listener is indeed removed in the kill() method so I'm not entirely sure what to tell you. 🤷♂️ 1 Link to comment Share on other sites More sharing options...
Author Share Posted August 18, 2021 1. I'm an employee of a Belgian company which is a Club GreenSock member (I'll be glad to communicate you by private message any information you'd need if you want to check), and that's also why I don't have the permission to show more of my code. 2. GSDevTools 3.7.1 3. I like the "previousGSDevTools && previousGSDevTools.kill();". I'm ashame to admit it, but I was not aware that such a writting works on JS. Unfortunately, I may not simplify my code the way you suggest because my globalTimeline is not a "global" JS item ("global" here stands for "globalizing all the sub timelines"). As soon as the GSDevTools is created, I loose the reference of that globalTimeline. That's why I have to retrieve it from GSDevTools when I have to recreate the tools on a new globalTimeline. Nevertheless, don't worry about this. As I wrote in my previous message, it's not a big deal at my side. Perhaps is it simply a side effect of using gsap inside React. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now