2014-02-13 37 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

相關問題