访问循环中创建的位图(AS3)

时间:2014-02-14 19:37:21

标签: actionscript-3

我有一个函数,我调用它使用循环来创建一些尖峰的位图。这是具有全局范围的位图变量:

public var spikes:Bitmap;

//...

这是循环函数:

private function generateSpikes():void
    {
        for (var i:int = 0; i < 5; i++)
        {
            spikes = new SpikesImage();
            spikes.x = (Math.random() * 500) - spikes.width;
            spikes.y = (i * yDistanceBetweenSpikes) + (player.height + 300);

            addChild(spikes);
        }

稍后在我的enterFrame函数中,我有声明:

spikes.x += 10;

这只会移动其中一个尖峰位图,我想移动循环中创建的所有尖峰位图。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

基本上,spikes只是循环中设置的最终对象。因此,您需要以另一种方式创建所有其他对象。通常,人们这样做的方式是将它们存储在一个数组中。

private var spikeArray:Array = [];
public var spikes:Bitmap;

private function generateSpikes():void
{
    for (var i:int = 0; i < 5; i++)
    {
        spikes = new SpikesImage();
        spikes.x = (Math.random() * 500) - spikes.width;
        spikes.y = (i * yDistanceBetweenSpikes) + (player.height + 300);

        addChild(spikes);
        spikeArray.push(spikes);
    }
}

然后,您可以通过循环遍历该数组或调用该数组的特定索引来访问它们。