{ "type": "interface",
  "qname": "spark.core.IGraphicElementContainer",
    "description": "The IGraphicElementContainer is the minimal contract for a container class to support <code>IGraphicElement</code> children.  <p>Typically instead of directly implementing this interface, a developer would sub-class Group which already implements the IGraphicElementContainer interface.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["spark.core.IGraphicElement"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 2.0"]},
      {  "tagName": "productversion",
         "values": ["Flex 4.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
    "qname": "invalidateGraphicElementSharing",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Notify the host component that an element layer has changed.  <p>The <code>IGraphicElementContainer</code> must re-evaluates the sequences of graphic elements with shared DisplayObjects and may need to re-assign the DisplayObjects and redraw the sequences as a result.</p>  <p>Typically the host will perform this in its <code>validateProperties()</code> method.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["element The element that has changed size."]},
        {  "tagName": "playerversion",
           "values": ["Flash 10", "AIR 2.0"]},
        {  "tagName": "productversion",
           "values": ["Flex 4.5"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "element", "type": "spark.core.IGraphicElement"}]}
  ,
  { "type": "method",
    "qname": "invalidateGraphicElementProperties",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Notify the host component that an element changed and needs to validate properties.  <p>The <code>IGraphicElementContainer</code> must call the <code>validateProperties()</code> method on the IGraphicElement to give it a chance to commit its properties.</p>  <p>Typically the host will validate the elements' properties in its <code>validateProperties()</code> method.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["element The element that has changed."]},
        {  "tagName": "playerversion",
           "values": ["Flash 10", "AIR 2.0"]},
        {  "tagName": "productversion",
           "values": ["Flex 4.5"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "element", "type": "spark.core.IGraphicElement"}]}
  ,
  { "type": "method",
    "qname": "invalidateGraphicElementSize",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Notify the host component that an element size has changed.  <p>The <code>IGraphicElementContainer</code> must call the <code>validateSize()</code> method on the IGraphicElement to give it a chance to validate its size.</p>  <p>Typically the host will validate the elements' size in its <code>validateSize()</code> method.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["element The element that has changed size."]},
        {  "tagName": "playerversion",
           "values": ["Flash 10", "AIR 2.0"]},
        {  "tagName": "productversion",
           "values": ["Flex 4.5"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "element", "type": "spark.core.IGraphicElement"}]}
  ,
  { "type": "method",
    "qname": "invalidateGraphicElementDisplayList",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Notify the host component that an element has changed and needs to be redrawn.  <p>The <code>IGraphicElementContainer</code> must call the <code>validateDisplayList()</code> method on the IGraphicElement to give it a chance to redraw.</p>  <p>Typically the host will validate the elements' display lists in its <code>validateDisplayList()</code> method.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["element The element that has changed."]},
        {  "tagName": "playerversion",
           "values": ["Flash 10", "AIR 2.0"]},
        {  "tagName": "productversion",
           "values": ["Flex 4.5"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "element", "type": "spark.core.IGraphicElement"}]}
  ]
  }
