2009-12-31 4 views
0
 private static var tileDir:String; 
     public static var tileImage:BitmapData; 
     private static var loader:Loader; 

     public static var tileReady:EventDispatcher = new EventDispatcher(); 
     public static var tileNum_perRow:Number = 3; 
     public static var select:selector; 

     public var tileNum:Number = 0; 
     public var setBack:Number = 0; 
     public var tileState:String; 
     public var tCol:Number; 
     public var tRow:Number; 

     private var tWidth:int = 30; 
     private var tHeight:int = 30; 
     private var tImage:BitmapData; 
     private var canvas:Bitmap; 

     private var p:Point; 
     private var r:Rectangle;  

     public function Tile():void 
     { 
      var tempImage:BitmapData = tileImage; 
      r = new Rectangle(0,0,30,30); 
      p = new Point(0,0); 
      tImage = new BitmapData(30,30); 
      tImage.copyPixels(tempImage,r,p); 
     } 

И я получаю следующее сообщение об ошибке:Invalid BitmapData Error # 2015

ArgumentError: Error #2015: Invalid BitmapData. 

Это имеет тенденцию происходить при копировании пикселей. Я не знаю, почему.

tileImage; 

tileImage действительно, я использовал переменную в приведенном ниже коде и работает. Но выше не делает. Не знаю, почему. У кого-нибудь есть подсказки?

this.graphics.beginBitmapFill(tileImage); 
this.graphics.drawRect(60, 0,tWidth ,tHeight); 

ответ

0

Nevermind, я полагаю, лучшее решение

   theMatrix.translate(30,0); 
     this.graphics.beginBitmapFill(tileImage,theMatrix); 
     //this.graphics.drawRect(0, 0,tWidth ,tHeight); 
     this.graphics.endFill(); 

с помощью theMatrix.translates даст вам возможность выбрать, какую часть плитки вы хотите, не изменяя положение спрайта