You can also combine effects and add event listener to the Parallel or Sequence. Check this doc page.
Thanks for your note! I am already using parallel and sequence. I do have to break the effects up, though because I have some non-effect things I have to execute in between.
I just wanted to update this. I have a string of effects. I add an END_EFFECT listener for the next function to be called when the effect ends, and then play the effect. When I get to the next function, I remove the its listener and add a listener for the next function and play it, and so on. This works fine. (You need to do this only if there are things you need to do in between effects. Otherwise, Sequence should work.)
The only problem I ran into was there are times when I need to add an array of targets. In that case, the next function gets called for each item in the array. I needed my next function to be called once, so I added a loop to remove all END_EFFECT listeners before continuing.