Character fly away in platform game

hi guys,
here i found a glitch, here is my code as it executes the character flies in decreasing y direction, & its motion along x-axis is jerky.


var t:int=0;
var wal:Array;
wal=new Array();
var man:Object;
var newAnimstate:String=“stand”;
var gravity:Number=.0009;
var lastTime:int;
createman();
stage.addEventListener(Event.ENTER_FRAME,gameloop);
function createman()
{
man=new Object();
man.mc=rect.man;
man.dx=0.0;
man.dy=0.0;
man.jump=false;
man.inAir=false;
man.jumpspeed=.8;
man.walkspeed=.6;
man.animstate=“stand”;
man.direction=1;
man.moveRight=false;
man.moveLeft=false;
man.walkAnimation = new Array(0,1,2,3,4,5,6,7,8,9);
man.width=53.0;
man.height=95.3;
man.animstep=0;
man.scaleX=.08;
man.scaleY=.08;
man.x=-31.5;
man.y=22;
var labels:Array=man.mc.currentLabels;
for (var i:uint = 0; i < labels.length; i++)
{
var label:FrameLabel = labels*;
trace("frame " + label.frame + ": " + label.name);
}

}

stage.addEventListener(KeyboardEvent.KEY_DOWN, down);
stage.addEventListener(KeyboardEvent.KEY_UP, up);
function down(event:KeyboardEvent)
{
if(event.keyCode==37)
{man.moveLeft=true;
}
else if(event.keyCode==39)
{man.moveRight=true;
}
else if(event.keyCode==32)
{
if (!man.inAir)
man.jump=true;
}
}
function up(event:KeyboardEvent)
{
if(event.keyCode==37)
{man.moveLeft=false;}
else if(event.keyCode==39)
{man.moveRight=false;}
count();
function count()
{ for (var a:int=0; a<this.rect.numChildren; a++)
{
var mc:Object=this.rect.getChildAt(a);
if (mc is wall)
{
var floorwall:Object=new Object();
floorwall.topside=mc.y;
floorwall.bottomside=mc.y+mc.height;
floorwall.leftside=mc.x;
floorwall.rightside=mc.x+mc.width;
wal[t]=floorwall;
t++;
}
}
}
function moveman(Char:Object, timediff:int)
{
var vertical:Number=Char.dy + gravitytimediff;
if (vertical>15)
vertical=15.0;
Char.dy+= timediff
gravity;
var horizontalDist:Number=0;
var newDirection:int=Char.direction;
if (Char.moveLeft)
{
horizontalDist=-Char.walkspeed * timediff;
newAnimstate=“walk”;
newDirection=-1;

			}
			else if(Char.moveRight)
			{	
				horizontalDist=Char.walkspeed*timediff;
				newAnimstate="walk";
				newDirection=1;
			}
			 if(Char.jump)
			{
				Char.jump=false;
				vertical=-Char.jumpspeed;
				newAnimstate="jump";
			}
			
			var newY:Number=  Char.mc.y + vertical;
			var newX:Number= Char.mc.x+ horizontalDist;
			Char.hitWallLeft=false;
			Char.hitWallRight=false;
			Char.inAir=true;
		for (var j:int=0;j&lt;wal.length; j++)
		{  
                       if ((Char.mc.x+Char.width/2 &gt;wal[j].leftside) &&   
                        (Char.mc.xChar.width/2&lt;wal[j].rightside))                                                     
		   { if ((Char.mc.y  &lt;= wal[j].topside)&(newY&gt;wal[j].topside))
		    { 
				newY=wal[j].topside-Char.width/10;
				Char.inAir=false;
				Char.dy=.5;
				break;
		     }
		   }
		 }
		    for (var j:int=0; j&lt;wal.length; j++)
{
	if((newY&gt;wal[j].topside) && (newY-Char.height&lt;wal[j].bottomside))
	{
           	if (( (Char.mc.x- Char.width/2) &gt;=wal[j].rightside) && 
                    ((newX-Char.width/2 )&lt;= wal[j].rightside))
	     {	
		newX=wal[j].rightside + Char.width/2;
		Char.hitWallLeft=true;
		break;
	     }
	      else if (((Char.mc.x+Char.width/2)&lt;=wal[j].leftside) && 
                  (newX +Char.width/2&gt;=wal[j].leftside))
	    {	
	      newX=wal[j].leftside-Char.width/2;
	      Char.hitWallRight=true;
	      break;
	    }
       }					 
  }
		   Char.mc.x=newX;
			Char.mc.y=newY;
			if (Char.inAir)
			{
				newAnimstate="jump";
			}
			else if(!Char.inAir)
			{
				newAnimstate="walk";
			}
			Char.animstate=newAnimstate;
			if (Char.animstate == "walk") 
			{
			Char.animstep += timediff/60;
			trace(Char.animstep);
			if (Char.animstep &gt; Char.walkAnimation.length)
			{	
				Char.animstep = 0;
			}
			
			}
			else 
			{
			Char.mc.gotoAndStop(Char.animstate);
			              Char.mc.gotoAndStop(Char.walkAnimation[Math.floor(Char.animstep)]);
			}
		
		if (newDirection != Char.direction)
		{
			Char.direction = newDirection;
			Char.mc.scaleX =-.08;
			
		}
	}
	function gameloop(event:Event)
	{
		if (lastTime==0)
		lastTime=getTimer();
		var timeDiff:int=lastTime-getTimer();
		lastTime+=timeDiff;
		moveman(man,timeDiff);
	}