title: ArgumentError: Error #2015: Invalid BitmapData
body: <p>I am having problems loading a bitmapData. I am getting the following error </p>
  
  <pre><code>Engine Init //trace
  loadimage//trace
  ArgumentError: Error #2015: Invalid BitmapData.
      at flash.display::BitmapData()
  </code></pre>
  
  <p>Below is my code. it appears it happens after the trace loadimage</p>
  
  <pre><code>package com.objects {
  
      import flash.display.Sprite;
      import flash.display.BitmapData;
      import flash.display.Bitmap;
      import flash.geom.Point;
      import flash.geom.Rectangle;
      import flash.display.Loader;
      import flash.net.URLRequest;
      import flash.net.*;
      import flash.events.*;
      import flash.display.LoaderInfo;
  
      public class gameObject extends Sprite {
  
          protected var w:Number;
          protected var h:Number;
          protected var image:BitmapData;
          protected var canvas:Bitmap;
          protected var px:Number;
          protected var py:Number;
  
          public function gameObject():void
          {
              init();
          }
  
          private function init():void
          {
  
          }
  
          public function loadImage(imageDir:String, w:Number, h:Number, px:Number, py:Number):void
          {
              this.w = w;
              this.y = y;
              this.px = px;
              this.py = py;
  
              trace("loadimage");
              var loader:Loader = new Loader();
              loader.contentLoaderInfo.addEventListener(Event.COMPLETE,imageComplete);
              loader.load(new URLRequest(imageDir));
          }
  
           private function imageComplete(e:Event):void {
              var loader:LoaderInfo = LoaderInfo(e.target);
  
              image = Bitmap(loader.content).bitmapData;
              drawImage();
           }
  
           private function drawImage():void
           {
              var tilePoint:Point = new Point(0,0);
              var tileRect = new Rectangle(py,px,w,h);
              trace(loader.content);
              var canvasData:BitmapData = new BitmapData(w,h);
              trace("got canvas data");
              canvasData.copyPixels(image,tileRect,tilePoint);
              trace("copied pixels");
              canvas = new Bitmap(canvasData);
           }
      }
  }
  </code></pre>
  
  <p>And my call the the method is like so </p>
  
  <pre><code>balls = new Array();
              balls[0] = new gameObject();
              balls[0].loadImage("com/images/ball.gif", 15,15,0,0);
  </code></pre>
  
  <p>When I trace the Loader.content, below is what shows</p>
  
  <pre><code>Engine Init
  loadimage
  [object Bitmap]
  ArgumentError: Error #2015: Invalid BitmapData.
      at flash.display::BitmapData()
  </code></pre>