0

このコードは、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);
}
4

2 に答える 2

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);
    }
}
于 2013-02-17T20:00:45.593 に答える
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);
    }
}
于 2013-02-17T17:32:14.033 に答える