2011-02-08 2 views
0

Sprite 객체를 그리기 위해 더 큰 이미지를 만들기 위해 결합해야하는 기본 이미지가 많이 있습니다. Graphics 클래스의 beginBitmapFill() 메서드는 스프라이트의 그래픽 객체에 비트 맵을 렌더링한다는 것을 알고 있습니다. 그래서 BitmapData 개체를 조작하고 기본 이미지를 추가하여 합성 이미지를 생성 한 다음 내 Sprite에 그릴 수 있다고 생각했습니다.다른 위치의 단일 스프라이트에 여러 비트 맵 그리기

내 질문에 :이 일을 깨끗하고 비교적 번거 로움이없는 방법이 있습니까? 비트 맵을 Sprite 그래픽 컨텍스트의 특정 위치에 그릴 수 있습니까? Graphics 개체를 특정 좌표의 다른 개체로 복사하고 그런 식으로 빌드 할 수 있습니까?

답변

2

구성하려는 큰 이미지의 크기는 얼마나됩니까? 플래시 10은 8191x8191px의 비트 맵을 만드는 것으로 제한됩니다 (플래시 9는 2880x2880 픽셀로 제한됨). 자세한 내용은 docs에서 확인할 수 있습니다.

대용량 이미지의 크기가 좋다고 가정하면 언급 한 첫 번째 방법을 사용하는 것이 좋습니다. 즉, 작은 비트 맵의 ​​픽셀 데이터를 하나의 큰 비트 맵으로 복사 한 다음 Sprite의 Graphics 개체로 그립니다.

먼저 큰 크기의 새 BitmapData 객체를 만든 다음 작은 이미지를 반복하고 BitmapData.copyPixels()을 사용하여 각 작은 비트 맵의 ​​픽셀을 큰 비트 맵으로 복사합니다. 큰 이미지가 생성되면 Graphics.beginBitmapFill() 및 Graphics.drawRect()를 사용하여 큰 BitmapData를 스프라이트에 그릴 수 있습니다.

이 경로를 사용하는 이유는 BitmapData.copyPixels()가 Graphics.beginBitmapFill() 및 Graphics.drawRect()보다 빠르기 때문입니다. 그렇게되면 새로운 비트 맵마다 beginBitmapFill()을 수행해야하기 때문에 훨씬 더 깨끗하게 보입니다.

관련 문제