I am fairly new to Actionscript 3 and am hoping someone will be kind enough to 
point me in the right direction. 


I am getting the following error and am not where the problem is. This is 
supposed to creates a grid which I am trying to populate with one of two 
bitmaps 
copies of two different movieclips based on data that I am bringing in from an 
xml file.


ArgumentError: Error #2015: Invalid BitmapData.
 at flash.display::BitmapData()
 at pi.ui::GridLayout()
 at pi.ui::TotalEmployeeVBox/addViews()
 at pi.ui::TotalEmployeeVBox()
 at ProgChart_fla::MainTimeline/onLoadXML()



package pi.ui{
 import flash.display.MovieClip;
 import flash.display.BitmapData;
 import flash.display.Bitmap;
 import flash.geom.Rectangle;
 import flash.geom.Point;
 import flash.events.Event;
 public class GridLayout extends MovieClip {
  
  private var nItems:uint;
  private var nRows:uint;
  private var padding:uint;
  private var nCreated:uint;
  private var tallestItem:Number;
  private var lastItem:Object;
  private var _totalEmployees:Number;
  private var _divEmployees:Number;
  private var _percent:Number;
  private var canvasBitmap:Bitmap;
  private var canvasBitmapData:BitmapData;
  private var canvasRectangle:Rectangle = new Rectangle(0,0,621,237);
  private var areaRectangle:Rectangle;
  private var blankFlipBoardArray:Array;
  private var generalFlipBoardArray:Array;
  private var xPos:Number;
  private var yPos:Number;
  
  private var currentBlitFrame:int = 0;
  
  
  private var buffer:Number;
  

  public function GridLayout(totalEmployees:Number, divEmployees:Number):void {
   _totalEmployees=totalEmployees;
   _divEmployees=divEmployees;
   _percent = Math.ceil((_divEmployees/_totalEmployees)*100);
   
   nItems=120;
   nRows=5;
   padding=3;
   nCreated=0;
   tallestItem=0;
   buffer = 10;
   xPos = 0;
   yPos = 0;
   
   var blankFlipBoard:BlankFlipBoard = new BlankFlipBoard();
   blankFlipBoard.x = 0;
   blankFlipBoard.y=0;
   
   var generalFlipBoard:GeneralFlipBoard = new GeneralFlipBoard();
   generalFlipBoard.x = 0;
   generalFlipBoard.y=0;
   
   canvasBitmap = new Bitmap();
   canvasBitmapData = new BitmapData(621,237);
   canvasBitmapData.fillRect(canvasRectangle, 0xFFFFFF);
   canvasBitmap.bitmapData = canvasBitmapData;
   canvasBitmap.x = 0;
   canvasBitmap.y = 0;
   addChild(canvasBitmap);
   
   var generalFlipBoardBMD:BitmapData;
   var blankFlipBoardBMD:BitmapData;
   var generalFlipBoardArray = new Array();
   var blankFlipBoardArray = new Array();
   
   for(var i:int = 1; i<=blankFlipBoard.totalFrames;i++) {
    blankFlipBoard.gotoAndStop(i);
    blankFlipBoardBMD = new BitmapData(blankFlipBoard.width, 
blankFlipBoard.height);
    blankFlipBoardBMD.draw(blankFlipBoard);
    blankFlipBoardArray.push(blankFlipBoardBMD);
   }
   blankFlipBoard.gotoAndPlay(1);
   
   for(var j:int = 1; j<=generalFlipBoard.totalFrames;i++) {
    generalFlipBoard.gotoAndStop(j);
    generalFlipBoardBMD = new BitmapData(generalFlipBoard.width, 
generalFlipBoard.height);
    generalFlipBoardBMD.draw(generalFlipBoard);
    generalFlipBoardArray.push(generalFlipBoardBMD);
   }
   generalFlipBoard.gotoAndPlay(1);
   
   areaRectangle = new Rectangle();
   areaRectangle.width = 23;
   areaRectangle.height = 45;
   
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
   generalFlipBoard = null;
   blankFlipBoard = null;
  
  }
  
  function onEnterFrame(e:Event):void {
   
   canvasBitmapData.fillRect(canvasRectangle,0xFFFFFF);
   
   currentBlitFrame = currentBlitFrame+1;
   if(currentBlitFrame >= generalFlipBoardArray.length) {
    currentBlitFrame = 47;
   }
   var currentGeneralFlipBoardFrame:BitmapData = 
generalFlipBoardArray[currentBlitFrame];
   var currentBlankFlipBoardFrame:BitmapData = 
blankFlipBoardArray[currentBlitFrame];
   for (var i:int=0; i<nItems; i++) {
    
    var destinationPoint:Point = new Point(xPos, yPos);
    
    
    
    if (i<buffer){
     canvasBitmapData.copyPixels(currentBlankFlipBoardFrame,areaRectangle, 
destinationPoint);
     
    }
    else if (i<_percent+buffer) {
     canvasBitmapData.copyPixels(currentGeneralFlipBoardFrame,areaRectangle, 
destinationPoint);
     
    } else {
     canvasBitmapData.copyPixels(currentBlankFlipBoardFrame,areaRectangle, 
destinationPoint);
     
    }

    
    
    //if we are not on the very first item
    if (nCreated!=0) {
     //have we reached the max col for this row
     if (nCreated%nRows==0) {
      xPos=xPos+23+padding;
      yPos=0;
      
     } else {
      xPos=xPos;
      yPos=yPos+45+padding;
     }
    }
    nCreated++;
    
   }
  }
  

 }
}




Thanks in advance!

M McCoy

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to