我有一个位图,我想在舞台上的不同位置不止一个位图。我猜这可以通过循环实现,但我不确定如何。
目前我有:
[[Embed(source="../lib/Spikes.png")] //Spikes
public var SpikesImage:Class;
public var spikesBitmap:Bitmap = new SpikesImage();
答案 0 :(得分:1)
使用循环创建SpikesImage
的多个实例:
for(var i:int = 0; i < 10; i++)
{
var spikes:Bitmap = new SpikesImage();
spikes.x = i * spikes.width;
addChild(spikes);
}
虽然这会比你在舞台上有一个Bitmap消耗更多的内存,并且使用copyPixels()
将SpikesImage
的数据多次绘制到那个上。
一个例子:
var screen:Bitmap = new Bitmap();
screen.bitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
var spikes:Bitmap = new SpikesImage();
var drawPosition:Point = new Point();
var drawRect:Rectangle = spikes.bitmapData.rect;
for(var i:int = 0; i < 10; i++)
{
drawPosition.x = i * spikes.width;
screen.bitmapData.copyPixels(
spikes.bitmapData,
drawRect,
drawPosition
);
}
addChild(screen);
然而,这种方法的缺点是你失去了以任何方式转换图形的能力(旋转,缩放)。