2009-07-15 7 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

답변

1

그리는 직사각형의 위치를 ​​변환하려면 draw()에 매트릭스 변환을 추가해야합니다. 이런 식으로 뭔가 : 문제가 해결되지 않으면

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

-drawRect.x을 시도, 나는 정확히이 적용되는 변환 방법을 기억하지 수 있습니다.

관련 문제