此代码用于将名为BasicGrid的动画片段的实例放置到舞台上25次,然后如果新动画片段的X坐标超过128,则开始将它们放在新行上。
但由于某种原因,无论我尝试什么,我都无法让它工作,它所做的只是将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);
}
答案 0 :(得分: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);
}
}
答案 1 :(得分: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);
}
}