以编程方式绘制空 mx:grid flex

draw empty mx:grid flex programmatically

我想绘制 2*2 mx:Grid 并在这些将被动态计算的单元格中的任何一个上放置一个按钮。所以我想创建一个空的 2*2 网格,并用按钮替换任何一个单元格。

-----------------
|        |       |
------------------
|        |  btn  |
------------------

我该如何做到这一点?

您需要创建网格并保留对单元格的引用(GridItem 的实例)。考虑将以下代码作为某些 class.

的一部分
private var cells:Array = [];

private function addGrid(parent:DisplayObjectContainer):void {
    var grid:Grid = new Grid();
    var row1:GridRow = new GridRow();
    grid.addChild(row1);
    var cell11:GridItem = new GridItem();
    row1.addChild(cell11);
    var cell12:GridItem = new GridItem();
    row1.addChild(cell12);
    cells.push(new Array(cell11, cell12));
    var row2:GridRow = new GridRow();
    grid.addChild(row2);
    cell21 = new GridItem();
    row2.addChild(cell21);
    var cell22:GridItem = new GridItem();
    row2.addChild(cell22);
    cells.push(new Array(cell21, cell22));
    parent.addChild(grid);
}

cells是二维数组,可以用来访问需要改变的单元格。您可以使用 Vector class 而不是 Array。我使用 Array 只是因为代码更短。