first person controller turning animation not working

Im using the first person Controller as a third person controller and everytime my player turns to the right or left etc. he does what he is ment to do, pressing D for example: will turn the player 90 degrees and play the animation “Run” but whilst i am holding it and i switch to A while holding D still for example the character will turn to the left but not play the run animation and instead play the standing animation can someone help. here is my code:

	public float turnSpeed = 1.0f;
	public float time = 1f;
	public float speed = 1f;
	public GameObject Leg;


	// Use this for initialization
	void Start () 
	{
		animation.Play("Standing");
		animation["Falling"].speed = 0.42f;
		animation["Jump"].speed = 1f;
		animation["Run"].speed = 1f;
		Screen.lockCursor = true;
	}
	
	// Update is called once per frame
	void Update () 
	{   

	

		if(Input.GetKeyDown(KeyCode.Escape))
		{
		 player.GetComponent<MouseLook>().enabled = false;
		 maincamera.GetComponent<MouseLook>().enabled = false;
		}

		if(Input.GetMouseButtonDown(0))
		{
	     Screen.lockCursor = true;
		 player.GetComponent<MouseLook>().enabled = true;
		 maincamera.GetComponent<MouseLook>().enabled = true;

		}
		if(Input.GetKeyDown(KeyCode.W))
		{
			animation.CrossFade("Run");
		}
		if(Input.GetKeyUp(KeyCode.W))
		{
			animation.CrossFade("Standing");

		}
		if(Input.GetKeyDown(KeyCode.D))
		{
			animation.CrossFade("Run");
			transform.Rotate(0,90,0);
		}
		if(Input.GetKeyUp(KeyCode.D))
		{
			animation.CrossFade("Standing");
			transform.Rotate(0,-90,0);


		}
		if(Input.GetKeyDown(KeyCode.A))
		{
			animation.CrossFade("Run");
			transform.Rotate(0,-90,0);

		}
		if(Input.GetKeyUp(KeyCode.A))
		{
			animation.CrossFade("Standing");
			transform.Rotate(0,90,0);

		}   
 		if(Input.GetKeyDown(KeyCode.S))
		{
			animation.CrossFade("Run");
			transform.Rotate(0,180,0);
		}
		if(Input.GetKeyUp(KeyCode.S))
		{
			animation.CrossFade("Standing");
			transform.Rotate(0,180,0);
		}

		if(Input.GetKeyDown(KeyCode.Space))
		{
			animation.CrossFade("Jump");
			if(animation.IsPlaying("Jump") == false)
			{
				if(Input.GetKeyDown(KeyCode.W))
				{
					animation.CrossFade("Run");
				}
			}


		}


	}
}

to me it sounds like it’s not scripted for the combo key so it just goes stupid.

i have had a problem with this before, but it was involved in running and walking.

the way i got around this was. ( this is .js scripting )

 if(Input.GetKeyDown(KeyCode.A) && Input.GetKeyUp(KeyCode.D)){
    
    // RunAnimation Stuff here.
    
    }
if(Input.GetKeyDown(KeyCode.D) && Input.GetKeyUp(KeyCode.A)){
    
    // RunAnimation Stuff here.
    
    }

try that, because that is really sounds like the problem you’re having.