Hi @Tico1711,
The animation manager assigns to the sprite the texture/frames of the chosen animation, replacing the original texture / frame. When the animation ends, the sprite remains with the last frame reproduced.
I believe that the behavior you describe is as expected.
If the animation is reproduced correctly and you say that the cannon disappears from the beginning, then I imagine that you haven’t included the cannon in the animation frames.
In order for the cannon doesn’t disappear during the animation, you must include it in all frames of the animation. The last frame of the animation should be the same as the one used by the cannon when it does not fire.
If the frames of the animation are in a different texture from the original frame, then when completing the animation you have to assign the initial texture:
// In create() function
this.warShip.cannonFront.on('animationcomplete', function(){
this.warShip.cannonFront.setTexture('originalTextureKey', frame);
}, this);