{ "type": "class",
  "qname": "mx.containers.Tile",
  "baseClassname": "mx.core.Container"
  ,
    "description": "A Halo Tile container lays out its children in a grid of equal-sized cells. You can specify the size of the cells by using the <code>tileWidth</code> and <code>tileHeight</code> properties, or let the Tile container determine the cell size based on the largest child. A Tile container's <code>direction</code> property determines whether its cells are laid out horizontally or vertically, beginning from the upper-left corner of the Tile container.  <p><b>Note:</b> Adobe recommends that, when possible, you use the Spark containers with TileLayout instead of the Halo Tile container.</p>  <p>A Tile container has the following default sizing characteristics:</p> <table class=&quot;innertable&quot;> <tr> <th>Characteristic</th> <th>Description</th> </tr> <tr> <td>Direction</td> <td>horizontal</td> </tr> <tr> <td>Default size of all cells</td> <td>Height is the default or explicit height of the tallest child.<br/> Width is the default or explicit width of the widest child.<br/> All cells have the same default size.</td> </tr> <tr> <td>Default size of Tile container</td> <td>Flex computes the square root of the number of children, and rounds up to the nearest integer. For example, if there are 26 children, the square root is 5.1, which is rounded up to 6. Flex then lays out the Tile container in a 6 by 6 grid.<br/> Default height of the Tile container is equal to (tile cell default height) <strong>x</strong> (rounded square root of the number of children), plus any gaps between children and any padding.<br/> Default width is equal to (tile cell default width) <strong>x</strong> (rounded square root of the number of children), plus any gaps between children and any padding.</td> </tr> <tr> <td>Minimum size of Tile container</td> <td>The default size of a single cell. Flex always allocates enough space to display at least one cell.</td> </tr> <tr> <td>Default padding</td> <td>0 pixels for the top, bottom, left, and right values.</td> </tr> </table>   <p>The <code>&lt;mx:Tile&gt;</code> tag inherits all of the tag attributes of its superclass, and adds the following tag attributes:</p>  <pre>\\n &lt;mx:Tile\\n <b>Properties</b>\\n direction=&quot;horizontal|vertical&quot;\\n tileHeight=&quot;NaN&quot;\\n tileWidth=&quot;NaN&quot;\\n \\n <b>Sttles</b>\\n horizontalAlign=&quot;left|center|right&quot;\\n horizontalGap=&quot;8&quot;\\n paddingBottom=&quot;0&quot;\\n paddingTop=&quot;0&quot;\\n verticalAlign=&quot;top|middle|bottom&quot;\\n verticalGap=&quot;6&quot;\\n &gt;\\n ...\\n <i>child tags</i>\\n ...\\n &lt;/mx:Tile&gt;\\n </pre>",
  "tags": [
  {  "tagName": "includeExample",
         "values": ["examples/TileLayoutExample.mxml"]},
      {  "tagName": "see",
         "values": ["mx.core.Container"]},
      {  "tagName": "royalesuppresspublicvarwarning",
         "values": []},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "mx.containers.Tile",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "cellWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "cellHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "direction",
        "namespace": "public",
        "bindable": ["directionChanged"],
        "details": [],
        "deprecated": {},
          "description": "Determines how children are placed in the container. Possible MXML values  are <code>&quot;horizontal&quot;</code> and <code>&quot;vertical&quot;</code>. In ActionScript, you can set the direction using the values TileDirection.HORIZONTAL or TileDirection.VERTICAL. The default value is <code>&quot;horizontal&quot;</code>. (If the container is a Legend container, which is a subclass of Tile, the default value is <code>&quot;vertical&quot;</code>.)  <p>The first child is always placed at the upper-left of the Tile container. If the <code>direction</code> is <code>&quot;horizontal&quot;</code>, the children are placed left-to-right in the topmost row, and then left-to-right in the second row, and so on. If the value is <code>&quot;vertical&quot;</code>, the children are placed top-to-bottom in the leftmost column, and then top-to-bottom in the second column, and so on.</p>",
        "tags": [
        {  "tagName": "default",
               "values": [""horizontal""]},
            {  "tagName": "see",
               "values": ["TileDirection"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "tileHeight",
        "namespace": "public",
        "bindable": ["resize"],
        "details": [],
        "deprecated": {},
          "description": "Height of each tile cell, in pixels. If this property is <code>NaN</code>, the default, the height of each cell is determined by the height of the tallest child. If you set this property, the specified value overrides this calculation.",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "tileWidth",
        "namespace": "public",
        "bindable": ["resize"],
        "details": [],
        "deprecated": {},
          "description": "Width of each tile cell, in pixels. If this property is <code>NaN</code>, the defualt, the width of each cell is determined by the width of the widest child. If you set this property, the specified value overrides this calculation.",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "measure",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Calculates the default minimum and maximum sizes of the Tile container. For more information about the <code>measure()</code> method, see the <code>UIComponent.measure()</code> method.  <p>This method first calculates the size of each tile cell. For a description of how the cell size is determined, see the <code>tileWidth</code> and <code>tileHeight</code> properties.</p>  <p>The measured size of a Tile container with children is sufficient to display the cells in an N-by-N grid with an equal number of rows and columns, plus room for the Tile container's padding and borders. However, there are various special cases, as in the following examples:</p>  <ul> <li>If a horizontal Tile container has an explicit width set, that value determines how many cells will fit horizontally, and the height required to fit all the children is calculated, producing an M-by-N grid.</li>  <li>If a vertical Tile container has an explicit height set, that value determines how many cells will fit vertically, and the height required to fit all the children is calculated, producing an N-by-M grid.</li> </ul>  <p>If there are no children, the measured size is just large enough for its padding and borders.</p>  <p>The minimum measured size of a Tile container with children is just large enough for a single tile cell, plus padding and borders. If there are no children, the minimum measured size is just large enough for its padding and borders.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.core.UIComponent#measure()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "updateDisplayList",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Sets the positions and sizes of this container's children. For more information about the <code>updateDisplayList()</code> method, see the <code>UIComponent.updateDisplayList()</code> method.  <p>This method positions the children in a checkboard-style grid of equal-sized cells within the content area of the Tile container (i.e., the area inside its padding). For a description of how the cell size is determined, see the <code>tileWidth</code> and <code>tileHeight</code>properties.</p>  <p>The separation between the cells is determined by the <code>horizontalGap</code> and <code>verticalGap</code> styles. The placement of each child within its cell is determined by the <code>horizontalAlign</code> and <code>verticalAlign</code> styles.</p>  <p>The flow of the children is determined by the <code>direction</code> property. The first cell is always placed at the upper left of the content area. If <code>direction</code> is set to <code>&quot;horizontal&quot;</code>, the cells are placed left-to-right in the topmost row, and then left-to-right in the second row, and so on. If <code>direction</code> is set to <code>&quot;vertical&quot;</code>, the cells are placed top-to-bottom in the leftmost column, and then top-to-bottom in the second column, and so on.</p>  <p>If a child has a <code>percentWidth</code> or <code>percentHeight</code> value, it is resized in that direction to fill the specified percentage of its tile cell.</p>  in the component's coordinates, regardless of the value of the <code>scaleX</code> property of the component.  in the component's coordinates, regardless of the value of the <code>scaleY</code> property of the component.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.core.UIComponent#updateDisplayList()"]},
            {  "tagName": "param",
               "values": ["unscaledWidth Specifies the width of the component, in pixels,", "unscaledHeight Specifies the height of the component, in pixels,"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "unscaledWidth", "type": "Number"},
        { "name": "unscaledHeight", "type": "Number"}]}
      ]
  }
