1

只是一个简单的问题:

以下哪种创建精灵的方法具有快速渲染和更少的内存使用量?

将位图添加到精灵

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

对比

绘制矩形并用 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

第一个更快,因为矢量渲染数学需要在后者中填充您的形状。

如果你想要显着的(我的意思是非常显着的)性能提升,你应该在舞台上有一个位图。你从那里做的是存储引用来BitmapData表示图形,并通过.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 回答