I’m currently displaying a series of dots which appear in sequence based on an animated timeline. Each dot corresponds to an event which happened at a given time in the past and when the timeline reaches that event’s year the corresponding dot is revealed on a map. This part is already working to my satisfaction.
I would now like to have each dot appear larger at first and then reduce in size over a second or so. Zooming out if you will. I’ve managed to achieve this effect manually on a single dot using a trigger chop whose output value is used to change an individual dot’s radius over time. I would now like to apply a similar effect to each dot in succession as it gets revealed. The problem is that many of these zoom out effects will be overlapping as some of the dots will appear before the previous ones have had time to complete their own “zoom out”.
My conventional programmer’s approach to this would be to start a distinct thread for each circle as it gets revealed. Each one of these threads progressively decreasing the corresponding circle’s radius over a predetermined time. My feeling however is that there must be a more “TouchDesigny” way to achieve this. Possibly through a replicator but I’m not sure how to proceed.
Here is how my current setup works:
All the dots are circle ops whose bypass parameter are initially = 1. The circles’ bypass parameters get disabled in sequence from a chopexec’s onValueChange. As the input values change over time the chopexec looks up corresponding circle TOP names in a table and changes their bypass parameter from 1 to 0. I would like to use this same table’s information to simultaneously trigger my radius “zoom out” effect.
Any ideas better than starting a series of threads? If I recall correctly multithreaded Python scripts isn’t the best way to do things in TD.