Well, what I can see is that you are updating your frames only if the x velocity or the y velocity is different than 0. I see to that you have a animation cycle even if your player is not moving(animation with name 'still'), so if you gonna have animation frames running all the time I think is not necessary the piece of code:
// Update animation
if (this.vel.x != 0 || this.vel.y != 0) {
this.parent();
return true;
}
// Otherwise, tell the engine nothing to update
return false;
just replace it for :
// Update animation
this.parent(this);
return true;
is good for game performance not update if is not necessary, but if you will animating your player all time is necessary do it, either I imagine that your player is called samus aran for the metroid games and the still animation is when samus is stand breathing. Cheers!.