2013-02-17 40 views
0

此代碼旨在將名爲BasicGrid的動畫片段實例放置到我的舞臺上25次,然後如果新動畫片段的X座標超過128,它將開始放置他們在一個新的線上。AS3 - 嘗試放置5行5格

但由於某種原因,無論我嘗試什麼,我都無法使它工作,它所做的只是在完全相同的位置放置25個方格,任何建議/幫助將不勝感激,謝謝!

for (var i:uint; i <= 25; i++) { 
    var newOpenGrid:BasicGrid = new BasicGrid(); 
    newOpenGrid.x + 32; 
    if(newOpenGrid.x > 128) { 
     newOpenGrid.x = 32; 
     newOpenGrid.y += 32; 
    } 
    addChild(newOpenGrid); 
    trace(this.numChildren); 
    trace("X: " + newOpenGrid.x); 
    trace("Y: " + newOpenGrid.y); 
    trace("i: " + i); 
} 
+1

newOpenGrid.x + 32 * I; – philipp 2013-02-17 17:28:18

回答

0

解決它,我用變量了,它可以讓新方知道在哪裏放置自身,如果需要啓動一個新行平方的舊X和Y值,這裏是修改後的代碼。

for (var i:uint; i <= 24; i++) { 

    var newOpenGrid:BasicGrid = new BasicGrid(); 
    var gridX:int; 
    var gridY:int; 
    newOpenGrid.x = gridX; 
    newOpenGrid.x += 32; 
    newOpenGrid.y = gridY; 
    if(newOpenGrid.x > 160) { 
     newOpenGrid.x = 32; 
     newOpenGrid.y += 32; 
    } 
    addChild(newOpenGrid); 
    gridX = newOpenGrid.x; 
    gridY = newOpenGrid.y; 
    trace(this.numChildren); 
    trace("X: " + newOpenGrid.x); 
    trace("Y: " + newOpenGrid.y); 
    trace("i: " + i); 
    } 
} 
1

你也使用嵌套的for循環:

var ySpace:uint = 32; 
var xSpace:uint = 32; 
var yStart:uint = 32; 
var xStart:uint = 32; 
for(var row:uint = 0; row < 5; row++) { 
    for(var col:uint = 0; col < 5; col++) { 
     var newOpenGrid:BasicGrid = new BasicGrid(); 
     newOpenGrid.x = xStart + col * xSpace; 
     newOpenGrid.y = yStart + row * ySpace; 
     addChild(newOpenGrid); 
    } 
}