2014-02-14 21 views
0

我有一個我調用的函數,它使用循環創建一些尖峯位圖。下面是與全球範圍內的位圖變量:訪問位於循環中創建的位圖(AS3)

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

基本上,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); 
    } 
} 

然後,您可以通過循環訪問數組或調用該數組的特定索引來訪問它們。

+0

完美!我知道爲什麼它不能按預期工作,但作爲編程初學者,我找不到解決方案。謝謝 :) – Craig