我有一个函数,我调用它使用循环来创建一些尖峰的位图。这是具有全局范围的位图变量:
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;
这只会移动其中一个尖峰位图,我想移动循环中创建的所有尖峰位图。我该怎么做呢?
答案 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);
}
}
然后,您可以通过循环遍历该数组或调用该数组的特定索引来访问它们。