2014-02-13 43 views
0

我有一个位图,我想在舞台上的不同位置上有多个孩子。我猜想,这是可以实现的使用循环,但我不知道如何。使用一个循环来创建同一个位图(AS3)的多个孩子

目前我有:

[[Embed(source="../lib/Spikes.png")] //Spikes 
    public var SpikesImage:Class; 

public var spikesBitmap:Bitmap = new SpikesImage(); 

回答

1

使用循环创建的SpikesImage多个实例:

for(var i:int = 0; i < 10; i++) 
{ 
    var spikes:Bitmap = new SpikesImage(); 
    spikes.x = i * spikes.width; 

    addChild(spikes); 
} 

尽管这会消耗内存,远远大于如果你有在舞台上的一个位图,并使用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); 

这种方法的倒台不过是你失去变换图形以任何方式(旋转,缩放)的能力。

+0

你能给我一个如何使用copyPixels()的例子吗? – Craig

+0

@克雷格当然,看看这个。 – Marty

+0

另外,我不明白你给出的循环例子是如何工作的。变量i只是一个整数,你不能将一个x位置分配给一个整数。 – Craig

相关问题