Actionscript 3 精灵BeginFilBitMap与addChild(位图)的As3性能

Actionscript 3 精灵BeginFilBitMap与addChild(位图)的As3性能,actionscript-3,Actionscript 3,只是一个简单的问题: 以下哪种创建精灵的方法具有快速渲染和更少内存使用 向精灵添加位图 var sprite:Sprite = new Sprite(); var bitmap:Bitmap = new Bitmap(); sprite.addChild(bitmap); vs 绘制矩形并用位图数据填充 var bitmapData:Bitmapdata = new BitmapData(100, 100); var sprite:Sprite = new Sprite(); sprite.g

只是一个简单的问题:

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

向精灵添加位图

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

绘制矩形并用位图数据填充

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();

谢谢你的任何想法。

第一个更快,因为矢量渲染数学需要填充后一个形状

如果你想要显著的(我的意思是非常显著的)性能提升,你应该在舞台上有一个位图。从那里可以存储对
BitmapData
的引用以表示图形,并通过将这些引用采样到一个位图中

例如:

// 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));

所以copyPixeld将从rect复制位图数据并放置在cavnas位图的顶部,如果我没有弄错的话?谢谢你,马蒂,你总是这样helpful@bluebill1049是的,这是正确的,而且它可以非常快地做到这一点。它可以做到每帧2000多次以上,非常舒适。唯一的问题是你不能旋转。