I prefer not implement else condition for actions that you would use and with other conditions.
Because you check if touching "left touch" set animation to run (else) set animation to idle.
So at the third event you check if you touch "right touch" set animation to run , but you have already set the animation to idle because you did not touch "left touch".
Instead of else try use "is touching left" and "is touching right" and invert both.
For mirrored you have to set the mirrored back like you do with is touching right set mirrored , make and for left touch and set not mirrored.
For the explotion just destroy it on any animation finished.
And for your character , what is the dimension of your sprite?