Help with jumping animations

I am using collisions to detect if the character is on the ground or in the air. Im using a variable which is either true or false depending on whether the character is touching the ground or not. Now the jumping up animation is playing fine but when the character touches the ground the landing animation keeps on playing since I have set the landing animation to play when the character touches the ground. Since the character is touching the ground, the landing animation will not stop playing. I have a limited knowledge of programing so I cannot think of anything which I can use or search for on google.

The script is something like this

var grounded : boolean = false;

function update ()
{
    if (!grounded) 
       animation.crossfade ("Jump")
    else
       animation.crossfade ("Land")
}

Here is an example of what I want to do and I have also downloaded the source files but I dont understand how this guy is doing this.

Jumping animation example

http://unity3d.com/support/resources/example-projects/character-animation.html

You should give a look at this, specially the Goober scene with the SuperMarioAnimation.js and SuperMarioController.js

I think that might help you ; )

Yes I have had a look at this but this isnt what I want. This only has one animation which consists of jumping up and jumping down, no matter how high you are from the ground or if you touching the ground or not, the jumping animation will play since its all a single animation and plays straight after the first one.

Setting the landing animation to Clamp will make it only play once.

I have set the animation to clamp but it still plays after every 2-3 seconds.

Here are the scripts from web I linked

var moveComponent;
moveComponent= GetComponent(PlayerControllerMove);

var runSpeed;
runSpeed = moveComponent.runSpeed;

function Start()
{


//set all animations to loop
animation.wrapMode = WrapMode.Loop;

animation["jumpDown"].wrapMode = WrapMode.ClampForever;
animation["jumpUp"].wrapMode = WrapMode.ClampForever;

animation.Stop(); 
}

function Update ()
{
  
// The current x-z move speed (referenced from Player Controller Move script)
var moveSpeed;
moveSpeed = moveComponent.moveSpeed;
  
//Debug.Log(moveSpeed);

if (moveComponent.IsGrounded())
{

if( moveSpeed > .1 )
   {
		if( moveSpeed >= (runSpeed -3) )
			animation.CrossFade("run");
		else
			animation.CrossFade("walk");
	}
	else
   {
	animation.CrossFade("idle");
	} 
} //ends if statement IsGrounded
else
{

if (moveComponent.IsJumping () )
{

	if (moveComponent.HasJumpReachedApex ())
		animation.CrossFade("jumpDown");
	else
		animation.CrossFade("jumpUp");
}

}

} //ends function update

@script RequireComponent(CharacterController)

Can someone please explain how this guy is playing the jumping down animation.

Anyone? Is there another way of doing this? I have tried disabling the animation by using

animation [“Land”].enabled = false

but it still plays the animation. also the jumping and landing animations are on the highest layers.