2011-02-05 56 views
-1

我很難正確說出我的問題,所以如果看起來令人困惑,我很抱歉。另外我在Flash Builder中使用了flixel庫。這可能並不那麼重要,但可能任何人知道比我多一點,甚至一點點AS3都可能會看到我做錯了什麼。使用循環間隔出來的同一對象的多個實例僅創建一個

無論如何,我想要做的是基本上創建這個方形對象我做的10個實例。我所要做的就是傳遞一個x和y座標來放置它並且它可以工作。所以香港專業教育學院進行測試,如果我只是做:

var testsquare:Bgsq; 
testsquare = new Bgsq(0,0); 
add(testsquare); 

它工作正常,並在0,0增添了廣場就像我告訴它,但我想添加其中10然後將所創建25像素的下一個向右(因爲每個廣場是25px)

我的問題是,我只見過1平方,就像它只剩下它的1個實例。

任何人都可能有一個想法,我可能做錯了什麼?

var counter:int = 0; 
var bgsqa:Array = new Array; 

for (var ibgs:int = 0; ibgs < 10; ibgs++) 
    { 
    bgsqa[counter] = new Bgsq(0,0); 
    bgsqa[counter].x += 25; 
    add(bgsqa[counter]); 
    counter++; 
    } 

回答

0

這裏有很多你做錯了。

首先,您正在使用僞迭代器(計數器)通過循環訪問數組元素,而不是使用迭代器(ibgs)。

其次,我沒有看到你正在迭代的數組(bgsqa)中的任何東西。難怪你有問題。這是你應該做的。

var bgsqa:Array = []; 
for(var i:int=0;i<10;i++) 
{ 
    var bgsq:Bgsq = new Bgsq(i * 25, 0); 
    add(bgsq); 
    bgsqa.push(bgsq); 
} 

這應該可能做到這一點,如果您的文章是準確的。

+0

我明白你說的櫃檯,生病了解決。但是,不會只是繼續移動廣場「bgsq」超過25像素,所以當它加載時,我只能看到第10個創建的?我需要有10個獨立的方塊,這些方塊都是相距25個像素創建的 – brybam 2011-02-05 23:11:31

0

爲(VAR ibgs:= 0; ibgs < 10; ibgs ++)

{ 
bgsqa[counter] = new Bgsq(0,0); 
bgsqa[counter].x = counter * 25; 
add(bgsqa[counter]); 
counter++; 
} 

它們從0開始,因此應用+=被簡單地添加25至0。這應做的伎倆。

+0

好吧,第一個應該放在0,0上,然後第二個(25,0)計數器變量的點代表一個新的實例名稱,所以可以有多個同一個opbject的副本,所以它不會只是繼續移動原來的對象 – brybam 2011-02-05 23:05:13

相關問題