1

簡単な質問:

スプライトを作成する次の方法のうち、レンダリングが速く、メモリ使用量が少ないのはどれですか?

スプライトにビットマップを追加する

var sprite:Sprite = new Sprite();
var bitmap:Bitmap = new Bitmap();
sprite.addChild(bitmap);

vs

長方形を描き、bitmapDataで塗りつぶします

var bitmapData:Bitmapdata = new BitmapData(100, 100);
var sprite:Sprite = new Sprite();
sprite.graphic.drawRec(0, 0, 100, 100);
sprite.graphic.beginFillBitmap(bitmapData:Bitmapdata);
sprite.graphic.endFill();

アイデアをありがとう。

4

1 に答える 1

3

後者では形状を塗りつぶすためにベクトルレンダリング数学が必要になるため、前者の方が高速です。

目立つ(そして私は非常に目立つ)パフォーマンスの向上が必要な場合は、ステージ上に1つのビットマップが必要です。そこから行うことはBitmapData、グラフィックスを表すためのストア参照であり、を介してそれらを1つのビットマップにサンプリングします.copyPixels()

例:

// This is the only actual DisplayObject that will hit the Stage.
var canvas:Bitmap = new Bitmap();
canvas.bitmapData = new BitmapData(500, 400);
addChild(canvas);


// Create some BitmapData and draw it to the canvas.
var rect:BitmapData = new BitmapData(40, 40, false, 0xFF0000);
canvas.bitmapData.copyPixels(rect, rect.rect, new Point(20, 20));
于 2013-02-27T04:19:18.517 に答える