親オブジェクトに追加されたすべてのアイテムをグリッド形式で配置するレイアウトプラグインに取り組んでいます。列、行、パディングの値を設定できるようにしたい。すべての子オブジェクトを配列にプッシュし、これらをforループでループします。オブジェクトを配置する必要がある位置を確認するために double for ループを使用しようとしましたが、常に境界外のインデックスエラーが発生しました。現在、このコードを使用してグリッド形成をセットアップしています。
var COLUMNS:int = vars.columns;
var PADDING:Number = 10;
for(var i:int = 0; i < childs.length; i++)
{
childs[i].x = (i % COLUMNS) * (childs[i].width + PADDING);
childs[i].y = int(i / COLUMNS) * (childs[i].height + PADDING);
}
以下は、このプラグインの使用例です: 注: Draw オブジェクトは、150x150 のサイズのスプライトを返すだけです。
var container:Sprite = new Sprite();
var obj1:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.GREEN});
var obj2:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:0x2C2C2C});
var obj3:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.BLACK});
var obj4:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.GREEN});
var obj5:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.GREEN});
var obj6:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:0x2C2C2C});
var obj7:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.BLACK});
var obj8:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.GREEN});
var obj9:Draw = new Draw({x:0 ,y:0 ,width:_width,height:_height, color:Constants.GREEN});
addChild(container);
container.addChild(obj1);
container.addChild(obj2);
container.addChild(obj3);
container.addChild(obj4);
container.addChild(obj5);
container.addChild(obj6);
container.addChild(obj7);
container.addChild(obj9);
Layout.setLayout(new GridLayout(container, {columns:4, rows:10, spacing:2}));
以前に埋められた配列によってすべてのオブジェクトが取得される、固定された列、行、間隔を持つより良いグリッド ループを作成する方法を知っている人はいますか?