2012-10-30 6 views
1

저는 AS3을 처음 접했고, 기본적인 가이드를 아직 모릅니다. 이 비트 맵 캔버스를 사용하여 스프라이트 시트를 캔버스에로드하고 불쌍한 루프를 사용하여 타일을 채울지도를 얻으려고했지만 운이 없었습니다.AS3 Bitmapdata Canvas 스프레드 시트 로더 도움이 필요합니다.

 for (var i:int = 0; i < columns; i++) 
     { 
      for (var j:int = 0; j < rows; j++) 
      { 
       smb3SpriteSheet = new SMB3(new SMB3SpriteSheet(), smb3XML.animation, 175); 
       smb3SpriteSheet.x = startX; 
       smb3SpriteSheet.y = startY; 
       canvas.addSprite(smb3SpriteSheet); 
       startX = startX + 16 
      } 
      startX = 0 
      startY = startY + 16 
     } 

이 코드는 내가 컴파일 할 때, 유일하게 그것을 빈 배경 비트 맵에 추가 할 것입니다 새로운 비트 맵 데이터, 설정 x와 y 좌표를 만든 다음에 공백을 아래로 이동하고 반복하되하도록되어 타일이 마지막 타일입니다. 온라인으로 보았지만이 방법으로 비트 맵 데이터를 사용할 수있는 정보는 없습니다. 나는 그것을 임무에 사용하기로되어있다.

답변

1

SMB3 클래스는 어떤 작업을해야할지 모르겠지만 동일한 캔버스를 그리려 할 때마다 호출하는 스프라이트 시트를 반복하므로 마지막 이미지 만 받는다고 생각합니다. 따라서 캔버스를 호출 할 때마다 실제로 새 SMB3을 작성하는 경우에도 현재 콘텐츠를 새 콘텐츠로 바꾸고 있습니다. 표시 객체는 부모 이상을 가질 수 없다고 생각할 필요가 있습니다.

그래서 중 당신이 절대적으로 권장하지 않습니다 각 이미지에 대한 Sprite 별도의를 사용하는 코드가 작동을 만들기 위해, 또는 BitmapData을 사용하고 캔버스의 이미지 드로잉을 수행하고, 스프라이트 만 후 그 할당하기 Bitmap .

이 작업에는 몇 가지 방법이 있습니다. BitmapDatacopyPixels, draw 또는 clone 방법을 사용할 수 있습니다.

Adding multiple instances of a Sprite?

Show another instance of a sprite

:

는 여기에 귀하의 문제와 관련된 두 개의 자원입니다