{ "type": "interface",
  "qname": "mx.styles.IStyleManager",
    "description": "The IStyleManager class manages the following: <ul> <li>Which CSS style properties the class inherits</li> <li>Which style properties are colors, and therefore get special handling</li> <li>A list of strings that are aliases for color values</li> </ul>  This interface was used by Flex 2.0.1. Flex 3 now uses IStyleManager2 instead.",
  "tags": [
  {  "tagName": "see",
         "values": ["mx.styles.CSSStyleDeclaration"]},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 2.0.1"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
    "qname": "getStyleDeclaration",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Gets the CSSStyleDeclaration object that stores the rules for the specified CSS selector.  <p>If the <code>selector</code> parameter starts with a period (.), the returned CSSStyleDeclaration is a class selector and applies only to those instances whose <code>styleName</code> property specifies that selector (not including the period). For example, the class selector <code>&quot;.bigMargins&quot;</code> applies to any UIComponent whose <code>styleName</code> is <code>&quot;bigMargins&quot;</code>.</p>  <p>If the <code>selector</code> parameter does not start with a period, the returned CSSStyleDeclaration is a type selector and applies to all instances of that type. For example, the type selector <code>&quot;Button&quot;</code> applies to all instances of Button and its subclasses.</p>  <p>The <code>global</code> selector is similar to a type selector and does not start with a period.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["selector The name of the CSS selector."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The style declaration whose name matches the <code>selector</code> property."]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "mx.styles.CSSStyleDeclaration",
      "params": [{ "name": "selector", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "setStyleDeclaration",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Sets the CSSStyleDeclaration object that stores the rules for the specified CSS selector.  <p>If the <code>selector</code> parameter starts with a period (.), the specified selector is a &quot;class selector&quot; and applies only to those instances whose <code>styleName</code> property specifies that selector (not including the period). For example, the class selector <code>&quot;.bigMargins&quot;</code> applies to any UIComponent whose <code>styleName</code> is <code>&quot;bigMargins&quot;</code>.</p>  <p>If the <code>selector</code> parameter does not start with a period, the specified selector is a &quot;type selector&quot; and applies to all instances of that type. For example, the type selector <code>&quot;Button&quot;</code> applies to all instances of Button and its subclasses.</p>  <p>The <code>global</code> selector is similar to a type selector and does not start with a period.</p>  calls the <code>styleChanged()</code> method of UIComponent. Set to <code>false</code> to avoid an immediate update of the styles in the application.  <p>The styles will be updated the next time one of the following methods is called with the <code>update</code> property set to <code>true</code>: <ul> <li><code>clearStyleDeclaration()</code></li> <li><code>loadStyleDeclarations()</code></li> <li><code>setStyleDeclaration()</code></li> <li><code>unloadStyleDeclarations()</code></li> </ul> </p>  <p>Typically, if you call the one of these methods multiple times, you set this property to <code>true</code> only on the last call, so that Flex does not call the <code>styleChanged()</code> method multiple times.</p>  <p>If you call the <code>getStyle()</code> method, Flex returns the style value that was last applied to the UIComponent through a call to the <code>styleChanged()</code> method. The component's appearance might not reflect the value returned by the <code>getStyle()</code> method. This occurs because one of these style declaration methods might not yet have been called with the <code>update</code> property set to <code>true</code>.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["selector The name of the CSS selector.", "styleDeclaration The new style declaration.", "update Set to <code>true</code> to force an immediate update of the styles; internally, Flex"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "selector", "type": "String"},
    { "name": "styleDeclaration", "type": "mx.styles.CSSStyleDeclaration"},
    { "name": "update", "type": "Boolean"}]}
  ,
  { "type": "method",
    "qname": "isValidStyleValue",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Determines if a specified parameter is a valid style property. For example:  <pre>\\n trace(StyleManager.isValidStyleValue(myButton.getStyle(&quot;color&quot;)).toString());\\n </pre>  <p>This can be useful because some styles can be set to values such as 0, <code>NaN</code>, the empty String (<code>&quot;&quot;</code>), or <code>null</code>, which can cause an <code>if (value)</code> test to fail.</p>   to this method, it returns <code>true</code> if the style was set and <code>false</code> if it was not set.",
    "tags": [
    {  "tagName": "param",
           "values": ["value The style property to test."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["If you pass the value returned by a <code>getStyle()</code> method call"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Boolean",
      "params": [{ "name": "value", "type": "*"}]}
  ]
  }
