Initialize fires but not tap. That is, how I learnt in Stackoverflow forum, because the event goes to the element of a carousel, not the carousel itself. So I put following code into the initialize function of my carousel:
The carousel component doesn't have a tap event which is what the control config in the controller is going to listen for. The tap event is on the element so the controller cannot listen to it, you need to fire an event on the carousel component for the controller to hear the event.