2009-07-15 124 views
0

它具有動畫效果,但它將精靈表的一部分放在精靈表上,而不是x和y告訴它的地方。這很短,所以請看看?先謝謝你。我的動畫功能有什麼問題?

package cyanprime{ 
    import flash.display.*; 
    import flash.geom.Rectangle; 

    public class Player{ 
     [Embed(source="brownplane.png")] 
     public var image:Class; 
     public var bitmapdata:BitmapData = getBitmap(new image()); 
     public var bitmap:Bitmap = new Bitmap(bitmapdata); 
     public var speed:int = 5; 
     public var x:int = 50; 
     public var y:int = 50; 
     public var frame:int = 0; 

     public function getBitmap(img:DisplayObject):BitmapData{ 
      var drawRect:Rectangle = new Rectangle((img.width/3) * frame, 0, img.width/3, img.height); 
      var bitmap:BitmapData = new BitmapData(img.width, img.height); 
      bitmap.draw(img,null,null,null,drawRect); 
      return bitmap; 
     } 

     public function animate():void{ 
      bitmap.bitmapData = getBitmap(new image()); 
      frame++; 

      if(frame > 2) 
       frame = 0; 

      bitmap.x = x; 
      bitmap.y = y; 
     } 
    } 
} 
+1

不應該改變x和y嗎?我看起來不動。信息太少。 – Dykam 2009-07-15 18:51:09

回答

1

看起來你需要添加一個矩陣變換得出()翻譯的矩形的位置被繪製。事情是這樣的:

var trans:Matrix = new Matrix(); 
trans.tx = drawRect.x; 
bitmap.draw(img,trans,null,null,drawRect); 

如果還是不行,請嘗試-drawRect.x,我不能確切記得如何應用該變換。