Flash game speed up function NEED HELP!

Basically i have created a snake game where the snake eats a piece of food and it grows but i would also like to speed up ive tried alot of things but i still cant seem to speed it up. THis is how far i have got so far…

setupgame()

function setupgame() {
	bodypart0.gotoAndStop(1)
	direction = ''
	if (bodypartsy) {
		for (i=bodypartsy.length-1;i > 0; i--) {
			removeMovieClip(eval('bodypart'+i))
		}
	}
	popup._visible = false
	bodypart._visible = false
	do {
		food._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
		food._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
		bodypart0._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
		bodypart0._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
	} while(bodypart0._x == food._x && bodypart0._y == food._y);
	framecount = 0;
	score = 0
	game = true;
	bodypartsx = new Array();
	bodypartsy = new Array();
	bodypartsx.push(bodypart0._x)
	bodypartsy.push(bodypart0._y)
}

trace("food"+food)
trace("framecount"+framecount)
this.onEnterFrame = function(){
        framecount = framecountMath.sqrt(food)
}
this.onEnterFrame = function () {

	if (game) {
		if (framecount/5 == Math.ceil(framecount/5)) {
			if (
			!(bodypart0._y <= snakepit._y && direction == 'up') 										&&
	        !(bodypart0._y+bodypart0._height >= snakepit._y+snakepit._height-2 && direction=='down') 	&&
			!(bodypart0._x+bodypart0._width >= snakepit._x+snakepit._width - 2 && direction =='right') 	&& 
			!(bodypart0._x <= snakepit._x && direction == 'left'))
			{
				bodypartsy[0] = bodypart0._y
				bodypartsx[0] = bodypart0._x
				for (i=bodypartsy.length-1;i > 0; i--) {
					eval('bodypart'+i)._y = bodypartsy[(i-1)]
					eval('bodypart'+i)._x = bodypartsx[(i-1)]
					bodypartsy* = eval('bodypart'+i)._y
					bodypartsx* = eval('bodypart'+i)._x
				}
			}
			if (food._x == bodypart0._x && food._y == bodypart0._y) {
				eat()
			}
			
			if (direction) {
				if (direction == 'up') {
					if (bodypart0._y <= snakepit._y) {
						dead()
					}
					else {
						bodypart0._y-= bodypart0._width
					}
				}
				else if (direction == 'down') {
					if (bodypart0._y+bodypart0._height >= snakepit._y+snakepit._height-2) {
						dead()
					}
					else {
						bodypart0._y+= bodypart0._width
					}
				}
				else if (direction == 'right') {
					if (bodypart0._x+bodypart0._width >= snakepit._x+snakepit._width - 2) {
						dead()
					}
					else {
						bodypart0._x+= bodypart0._width
					}
				}
				else if (direction == 'left') {
					if (bodypart0._x <= snakepit._x) {
						dead()
					}
					else {
						bodypart0._x-= bodypart0._width
					}
				}
			}
		}
			if (game) {
				if (insideSnake(bodypart0._x,bodypart0._y,true)) {
					dead()
				}
			}
		}
		framecount++
	}

keyListener = new Object();
keyListener.onKeyDown = function () {
	keycode = Key.getCode()
	if (keycode == 37) {
		direction = 'left'
	}
	else if (keycode == 38) {
		direction = 'up'
	}
	else if (keycode == 39) {
		direction = 'right'
	}
	else if (keycode == 40) {
		direction = 'down'
	}
};
Key.addListener(keyListener);
function dead() {
	popup.score = 'score: '+(bodypartsx.length-1)
	popup.swapDepths(this.getNextHighestDepth())
	popup._visible = true
	bodypart0.gotoAndStop(2)
	game = false;
}
function eat() {
	duplicateMovieClip(bodypart,'bodypart'+bodypartsy.length,this.getNextHighestDepth())
	bodypart0.swapDepths(this.getNextHighestDepth())
	eval('bodypart'+bodypartsy.length)._y = eval('bodypart'+(bodypartsy.length-1))._y
	eval('bodypart'+bodypartsx.length)._x = eval('bodypart'+(bodypartsy.length-1))._x
	bodypartsy.push(eval('bodypart'+bodypartsy.length)._y)
	bodypartsx.push(eval('bodypart'+bodypartsx.length)._x)
	do {
		food._x = snakepit._x + Math.floor(((snakepit._width-food._width)/food._width)*Math.random())*food._width
		food._y = snakepit._y + Math.floor(((snakepit._height-food._height)/food._height)*Math.random())*food._height
	} while(insideSnake(food._x,food._y));
	score = bodypartsx.length-1
}
function insideSnake(xneedle, yneedle,skiphead) {
	if (skiphead) { startat = 1; }
	else { startat = 0; }
	for (q=startat; q<bodypartsx.length; q++) {
		//each entry is compared to the required value
		if (bodypartsx[q] == xneedle) {
			if (bodypartsy[q] == yneedle) {
				//true is returned when found
				return true;
			}
		}
	}
	//otherwise, false is returned
	return false;
}
popup.againbutton.onRelease = function() {
	setupgame()
}