AS3: How to create a fighting game

[COLOR=#000000][FONT=Arial]I’m trying to create a beat em up game and right now i got my character walking, jumping and dashing. I have 6 attack animation so far 3 for punches 3 for kicks. If you hit the a key it will punch and if you hit the s key it will kick. This is what i’m trying to achieve, if the player presses the attack button whether it be punch or kick, then the character will attack and if the player keeps pressing the same attack button it will continue with its attack sequence. So if the player mashes the a key it will throw punched and if the player mashes the s key it will throw series of kicks (Note: I do no want if the player holds down the key, has to be a key press and release).[/FONT][/COLOR]
[COLOR=#000000][FONT=Arial]Also i want it to make it go to the next attack animation once the current attack animation has completely finished instead of jumping to the next frame midway of it’s current attack animation. So while the character is attacking and the attack key is pressed the character will finish its current attack animation and as soon as it ends it moves on to the next attack animation frame otherwise it will stop. I’m not sure where to begin, should i create arrays or extend classes. This is what i have done so far it is the player class
Feel free to play around with it too

[/FONT][/COLOR]https://www.dropbox.com/s/uw3n0izunxkqmc9/Attack%20Sequence%202.rar[COLOR=#000000][FONT=Arial]

[/FONT][/COLOR]

package 
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
	import flash.utils.*;
	import com.greensock.TweenLite;
	import com.greensock.easing.*;
	import com.greensock.plugins.*;


	public class Player extends MovieClip
	{
		TweenPlugin.activate([BlurFilterPlugin]);
		//Player run speed setting;
		var RunSpeed:Number = 8;
		//Player key presses
		var RightKeyPress:Boolean = false;
		var LeftKeyPress:Boolean = false;
		var UpKeyPress:Boolean = false;
		//Jump variables
		var Gravity:Number = 1.5;
		var JumpPower:Number = 0;
		var CanJump:Boolean = false;
		var Jumped:Boolean = false;
		//Dash variable
		var Pressed:Boolean = false;
		var LastKeyPressed:Number = -1;
		var DashAmount:Number = 250;
		var DoubleTapDelay:Number = 260;//-- delay in milliseconds
		var Dashing:Boolean = false;
		var RightDash:Boolean = false;
		var LeftDash:Boolean = false;


		public function Player()
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyDown);
			stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyPressed);
			addEventListener(Event.ENTER_FRAME,Update);
		}


		function KeyDown(event:KeyboardEvent)
		{
			stage.removeEventListener(KeyboardEvent.KEY_DOWN,SecondDash);
			//If key is down cannot dash
			RightDash = false;
			LeftDash = false;


			//When Key is Down
			if (event.keyCode == 39)
			{
				RightKeyPress = true;
			}


			if (event.keyCode == 37)
			{
				LeftKeyPress = true;
			}


			if (event.keyCode == 38)
			{
				UpKeyPress = true;
			}
		}


		function KeyPressed(event:KeyboardEvent):void
		{
			stage.removeEventListener(KeyboardEvent.KEY_DOWN,KeyPressed);
			stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp);


			//If on floor
			if (CanJump)
			{
				//If right key is down
				if (event.keyCode == 39)
				{
					if (event.keyCode == 39 && Pressed)
					{
						//If right key press matches with recent right key press, dash right
						Dashing = true;
						RightDash = true;
					}
					Pressed = true;
					setTimeout(function(){Pressed = false},DoubleTapDelay);
				}


				if (event.keyCode == 37)
				{
					if (event.keyCode == 37 && Pressed)
					{
						//If left key press matches with recent left key press, dash left
						Dashing = true;
						LeftDash = true;
					}
					Pressed = true;
					setTimeout(function(){Pressed = false},DoubleTapDelay);
				}


				//If A key is down
				if (event.keyCode == 65)
				{
					//Punch
				}
				
				//If S key is down
				if (event.keyCode == 83)
				{
					//Kick
				}
			}
		}




		function Update(event:Event)
		{
			//------------------------------------ ADDING GRAVITY ------------------------------------------//


			//Adding gravity to the game world
			JumpPower +=  Gravity;
			//if player is more than 300 on the y-axis
			if (this.y > 300)
			{
				//Player stays on the ground and can jump
				JumpPower = 0;
				CanJump = true;
			}


			//--------------------------------- PLAYER HAS ALREADY JUMPED -----------------------------------//


			//If already jumped and on floor
			if (((Jumped == true) && CanJump))
			{
				//Cannot jump again
				CanJump = false;


				//If on floor and right key is pressed run right
				if (RightKeyPress)
				{
					gotoAndStop('Run');
					scaleX = 1;
				}
				else if (LeftKeyPress)
				{
					//Otherwise if on floor and left key is pressed run left
					gotoAndStop('Run');
					scaleX = -1;
				}


				//If no key is pressed stay idle
				if (! RightKeyPress && ! LeftKeyPress)
				{
					gotoAndStop('Idle');
				}
			}


			//------------------------------------ BASIC MOVEMENTS --------------------------------------------//


			//If on floor and can jump
			if (CanJump)
			{
				//If right key is pressed run right
				if (RightKeyPress)
				{
					x +=  RunSpeed;
					gotoAndStop('Run');
					scaleX = 1;
				}
				else if (LeftKeyPress)
				{
					//otherwise if left key is pressed run left
					x -=  RunSpeed;
					gotoAndStop('Run');
					scaleX = -1;
				}


				if (UpKeyPress)
				{
					//If up key is pressed then jump
					JumpPower = -15;
					CanJump = false;
					gotoAndStop('Jump');
					Jumped = true;
				}


				//If no key is pressed stay idle
				if (! RightKeyPress && ! LeftKeyPress && CanJump)
				{
					gotoAndStop('Idle');
				}
			}
			else if ((CanJump == false))
			{
				//Otherwise if in air and right key is pressed move right
				if (RightKeyPress)
				{
					x +=  RunSpeed;
					scaleX = 1;
				}
				else if (LeftKeyPress)
				{
					//Otherwise if left key is pressed then move left
					x -=  RunSpeed;
					scaleX = -1;
				}
			}


			//---------------------------------- PLAYER DASHING FUNCTION --------------------------------------//


			//If Dashing is true
			if ((Dashing == true))
			{
				//Dash right
				if ((RightDash == true))
				{
					stage.addEventListener(KeyboardEvent.KEY_DOWN,SecondDash);
					stage.removeEventListener(KeyboardEvent.KEY_DOWN,KeyPressed);
					TweenLite.to(this,0,{blurFilter:{blurX:1000}});
					TweenLite.to(this,0.2,{blurFilter:{blurX:0},x:x + DashAmount,ease:Expo.easeOut});
					Dashing = false;
				}
				else if ((LeftDash == true))
				{
					//Otherwise dash left
					stage.addEventListener(KeyboardEvent.KEY_DOWN,SecondDash);
					stage.removeEventListener(KeyboardEvent.KEY_DOWN,KeyPressed);
					TweenLite.to(this,0,{blurFilter:{blurX:1000}});
					TweenLite.to(this,0.2,{blurFilter:{blurX:0},x:x - DashAmount,ease:Expo.easeOut});
					Dashing = false;
				}
			}
			else if ((Dashing == false))
			{
				stage.removeEventListener(KeyboardEvent.KEY_DOWN,SecondDash);
			}


			this.y +=  JumpPower;
		}


		//------------------------------------------------------------------------------------------------------------------
		//--------------------------------------------JUMP DASH FUNCTION ---------------------------------------------
		//---------------------------------------------------------------------------------------------------------------


		function SecondDash(event:KeyboardEvent)
		{
			stage.removeEventListener(KeyboardEvent.KEY_DOWN,SecondDash);


			if (event.keyCode == 38)
			{
				TweenLite.to(this,0,{blurFilter:{blurX:0}});
				TweenLite.to(this,0,{blurFilter:{blurY:1000}});
				TweenLite.to(this,0.5,{blurFilter:{blurY:0},y:y - DashAmount,ease:Expo.easeOut});
			}
		}


		function KeyUp(event:KeyboardEvent)
		{
			stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyPressed);
			RightDash = false;
			LeftDash = false;


			if (event.keyCode == 39)
			{
				RightKeyPress = false;
			}


			if (event.keyCode == 37)
			{
				LeftKeyPress = false;
			}


			if (event.keyCode == 38)
			{
				UpKeyPress = false;
				Jumped = false;
			}
		}
	}
}