else if (speed<1 && speed>-1 && !attacking)
alright ^, there is where your character would would go to the idle animation. The problem looks like once you set attacking to true. You never set it to false again. So either at the end of the attacking animation you'll have to set attacking = false or put in an else after the check for if Key.CONTROL is down. Though that Key.CONTROL shouldn't be an else if in the first place, change it to if.
to stop your character where he hits the ground, add..
while(_root.ground.hitTest(this._x, this._y, true) && falling) {
this._y--;}
...inside of the..
if (_root.ground.hitTest(this._x, this._y, true) && falling)
..brackets.