Делаете класс BallsContainer, который будет содержать в себе шарики (либо сразу, либо создавать программно), слушать клики по ним и переключать их состояния (активен/неактивен) и двигать активный шарик с клавиатуры.

Код AS3:
package{
public class BallsContainer{
private var balls :Array;
private var activeBall:Ball;
public function BallsContainer():void{
this.balls = [];
for(var i:int = 0; i < 10; i++)this.addBall();
this.addEventListener(KeyboardEvent.KEY_DOWN, startMoving);
this.addEventListener(KeyboardEvent.KEY_UP, stopMoving);
}//BallsContainer
private function addBall():void{
var ball:Ball = new Ball();
ball.x = Math.random() * this.stage.stageWidth;
ball.y = Math.random() * this.stage.stageHeight;
this.addChild(ball);
ball.mouseChildren = false;
ball.addEventListener(MouseEvent.MOUSE_OVER, this.ballOver);
ball.addEventListener(MouseEvent.MOUSE_OUT, this.ballOut);
ball.addEventListener(MouseEvent.CLICK, this.ballClick);
this.balls.push(balls);
}//addBall
private function ballOver(e:MouseEvent):void{
//реакция на наведение мыши
}//ballOver
private function ballOut(e:MouseEvent):void{
//реакция на увод мыши
}//ballOut
private function ballClick(e:MouseEvent):void{
if(this.activeBall){
//возвращаем this.activeBall - шарик который на данный момент активен - в нормальное состояние
}//if
this.activeBall = e.target;
//подсвечиваем шарик по которому кликнули
}//ballClick
private function startMoving(e:KeyboardEvent):void{
//включаем движение activeBall в нужную сторону
}//startMoving
private function stopMoving(e:KeyboardEvent):void{
//выключаем движение activeBall
}//stopMoving
}//class
}//package
Остальное сами допишете?
