Game Framework - Please Comment

Hi guys,

I’ve only been using AS3 (and Flash CS3) for a few days, I never used previous versions, I know C(++) and Win32 programming so my learning is coming along quickly.

I came up with this for a general game framework, please let me know if I’m on the right track and perhaps provide better ways of doing this. I still notice tearing when I move objects around, it’s not that bad but noticable; other than that it seems alright but I’m really not sure if I’m committing a major error in the concept.

 
package {
 import stuff I need here
 
 public class Main extends MovieClip {
  // create frame buffer
  var screen_data:BitmapData=new BitmapData(600,450,false,0x000000);
  var screen_bitmap:Bitmap=new Bitmap(screen_data);
 
  // create background and sprite sheets (load them elsewhere)
  var bkgnd_data:BitmapData=new BitmapData(600,450,false,0x000000);
  var object_data:BitmapData=new BitmapData(200,200,false,0x000000);
 
  // the singe sprite object
  var screen_sprite:Sprite=new Sprite();
 
  // other stuff
  var rect:Rectangle=new Rectangle();
  var point:Point=new Point();
  var frame_num:int=0;
 
  public function Main() {
   addEventListener(Event.ENTER_FRAME,GameLoop);
 
   screen_sprite.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
   screen_sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
   screen_sprite.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandler);
 
   screen_sprite.addChild(screen_bitmap);
   addChild(screen_sprite);
  }
 
  private function GameLoop(event:Event):void {
   // draw background
   rect.x=0;
   rect.y=0;
   rect.width=600;
   rect.height=450;
 
   point.x=0;
   point.y=0;
 
   screen_data.copyPixels(bkgnd_data,rect,point);
 
   // draw objects on top of background
   screen_data.copyPixels(...);
   screen_data.copyPixels(...);
   screen_data.copyPixels(...);
   screen_data.copyPixels(...);
 
   frame_num++;
  }
 
  private function mouseDownHandler(event:MouseEvent) : void {
   // mouse handling for entire screen
  }
 
  private function mouseUpHandler(event:MouseEvent) : void {
   // mouse handling for entire screen
  }
 
  private function mouseMoveHandler(event:MouseEvent) : void {
   // mouse handling for entire screen
  }
 }
}