The Phaser class provides a method that is executed each time phaser changes the phase. It's the onAdvance() method. It receives two parameters: the number of the current phases and the number of registered participants. It returns a Boolean value false if Phaser continues its execution or the value true if Phaser has finished and has to enter the termination state.
The default implementation of this method returns true if the number of registered participants is zero, and false otherwise. But you can modify this behavior if you extend the Phaser class and override this method. Normally, you will be interested in doing this when you have to execute some actions when you advance from one phase to the next.
In this recipe, you will learn how to control phase change in a phaser that is implementing your own version of the Phaser class that overrides the onAdvance...