Framerate drops

Hi,

Im kinda new with AS3. I’m trying to make a platform game. The key movement works fine and smooth. When i add another moving object to my stage the frame rate drops, its still playable. But it doesnt play very well.

Is there a way to solve this problem? Thanks in advance.

Here is my code:

package {

import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;

public class Character extends Sprite {
	private var ball:Sprite;
	private var ground:Sprite;
	private var block:Sprite;
	
	private var gravity:Number=0;
	private var vx:Number=0;
	private var ax:Number=0;
	private var vy:Number=0;
	private var ay:Number=0;
	private var speed:Number=0;
	private var friction:Number=0.8;
	private var jump:Boolean=true;
	private var left:Boolean=true;
	private var right:Boolean=true;
	private var run:Boolean=false;
	private var count:Number = -1;
	

	public function Character() {
		init();
		
	}
	public function init():void {
		
		ground = new Ground();
		addChild(ground);
		ground.y=stage.stageHeight-20;
		
		block = new Block();
		addChild(block);
		block.y= 500;
		
		ball = new Ball();
		addChild(ball);
		run=false;
		left=false;
		right=false;
		ball.x=stage.stageWidth/2;
		ball.y=50;
		stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyIsDown);
		stage.addEventListener(KeyboardEvent.KEY_UP, onKeyIsUp);
		addEventListener(Event.ENTER_FRAME, onEnterFrame);
		addEventListener(Event.ENTER_FRAME, hitTest);
		
	}
	
	public function hitTest(event:Event):void {
		if (ball.hitTestObject(ground)) {
			gravity=0;
			ay=0;
			ball.y=ground.y-ball.height/2;
			jump=true;

		} else {
			jump=false;
			gravity=3;
		}
		if(ball.hitTestObject(block)){
			gravity=0;
			ay=0;
			ball.y=block.y-ball.height/2;
			ball.x += speed;
			
			jump=true;
		}
	}
	

	public function onKeyIsDown(event:KeyboardEvent):void {
		switch (event.keyCode) {
			case Keyboard.SPACE :	
				if(left == true){
				
				ax=-10;
				}
				else if(right == true){
				
				ax = 5;
				}
				else{
				run=true;
				}
				break;

			case Keyboard.LEFT :
				if (run==true) {
					ax=-10;
				} else {
					left = true;
					right = false;
					ax=-5;
				}
				break;

			case Keyboard.RIGHT :
				
				if (run==true) {
					ax=10;
				} else {
					right = true;
					left = false;
					ax=5;
				}
				break;

			case Keyboard.UP :
				if (jump==true) {
					ay+=-2.2;
					vy=-20;
					
					break;
				}

			default :
				break;
		}
	}


	public function onKeyIsUp(event:KeyboardEvent):void {
		switch (event.keyCode) {
			case Keyboard.SPACE :
				run=false;
				left=false;
				right=false;
				break;

			case Keyboard.LEFT :
				left=false;
				ax=0;
				break;


			case Keyboard.RIGHT :
				right=false;
				ax=0;
				break;

			case Keyboard.UP :
				
				ay=0;
				break;

			default :
				break;

		}

	}

	public function onEnterFrame(event:Event):void {
		
		
		
		vy+=gravity;
		vy+=ay;
		vx+=ax;
		vx*=friction;
		ball.y+=vy;
		ball.x+=vx;
		block.x += speed;
		speed = 2;
		
		

	}

   }

}