2011-02-08 8 views
0

Spriteオブジェクトを描画するために大きな画像を構築するために結合する必要のある多くのベースイメージがあります。私はGraphicsクラスのbeginBitmapFill()メソッドがスプライトのグラフィックスオブジェクトにビットマップをレンダリングすることを理解します。だから私はBitmapDataオブジェクトを操作して、ベースイメージを追加して合成イメージを作成してから、Spriteに描画する必要があると判断しました。異なる場所にある1つのスプライトに複数のビットマップを描画する

私の質問です:これを行うには清潔で比較的面倒な方法がありますか?ビットマップをスプライトグラフィックスコンテキストの特定の場所に描画する方法はありますか?特定の座標のGraphicsオブジェクトを別の座標にコピーしてそのように構築できますか?

答えて

2

あなたが構築しようとするこれらの大きな画像の大きさはどれくらいですか? Flash 10では、8191x8191pxのビットマップを作成することに限定されています(Flash 9は2880x2880pxに制限されています)。 docsで詳細を読むことができます。

大きな画像の大きさが問題ないとすれば、前述した最初のアプローチをとることをお勧めします。小さいビットマップのピクセルデータを1つの大きなビットマップにコピーし、スプライトのGraphicsオブジェクトに描画します。

私はまず大きなサイズの新しいBitmapDataオブジェクトを作成し、小さな画像のそれぞれをループし、BitmapData.copyPixels()を使用して、各小さなビットマップのピクセルを大きなものにコピーします。大きなイメージが作成されたら、Graphics.beginBitmapFill()およびGraphics.drawRect()を使用して、大きなBitmapDataをスプライトに描画できます。

このルートに進む理由は、BitmapData.copyPixels()がGraphics.beginBitmapFill()およびGraphics.drawRect()より高速になるということです。また、新しいビットマップごとにbeginBitmapFill()を実行しなければならないので、より洗練された見た目です。

関連する問題