{ "type": "class",
  "qname": "spark.components.supportClasses.Range",
  "baseClassname": "spark.components.supportClasses.SkinnableComponent"
  ,
    "description": "The Range class holds a value and an allowed range for that value, defined by <code>minimum</code> and <code>maximum</code> properties. The <code>value</code> property is always constrained to be between the current <code>minimum</code> and <code>maximum</code>, and the <code>minimum</code>, and <code>maximum</code> are always constrained to be in the proper numerical order, such that <code>(minimum &lt;= value &lt;= maximum)</code> is <code>true</code>. If the value of the <code>snapInterval</code> property is not 0, then the <code>value</code> property is also constrained to be a multiple of <code>snapInterval</code>.  <p>Range is a base class for various controls that require range functionality, including TrackBase and Spinner.</p>   <p>The <code>&lt;s:Range&gt;</code> tag inherits all of the tag attributes of its superclass and adds the following tag attributes:</p>  <pre>\\n &lt;s:Range\\n <strong>Properties</strong>\\n maximum=&quot;100&quot;\\n minimum=&quot;0&quot;\\n snapInterval=&quot;1&quot;\\n stepSize=&quot;1&quot;\\n value=&quot;0&quot;\\n /&gt;\\n </pre>",
  "tags": [
  {  "tagName": "see",
         "values": ["spark.components.supportClasses.TrackBase", "spark.components.Spinner"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 1.5"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "productversion",
         "values": ["Flex 4"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "spark.components.supportClasses.Range",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "maximum",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The maximum valid <code>value</code>.  <p>Changes to the value property are constrained by <code>commitProperties()</code> to be less than or equal to maximum with the <code>nearestValidValue()</code> method.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["100"]},
            {  "tagName": "see",
               "values": ["#nearestValidValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "minimum",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The minimum valid <code>value</code>.  <p>Changes to the value property are constrained by <code>commitProperties()</code> to be greater than or equal to minimum with the <code>nearestValidValue()</code> method.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "see",
               "values": ["#nearestValidValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "stepSize",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The amount that the <code>value</code> property changes when the <code>changeValueByStep()</code> method is called. It must be a multiple of <code>snapInterval</code>, unless <code>snapInterval</code> is 0. If <code>stepSize</code> is not a multiple, it is rounded to the nearest multiple that is greater than or equal to <code>snapInterval</code>.",
        "tags": [
        {  "tagName": "default",
               "values": ["1"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "value",
        "namespace": "public",
        "bindable": ["valueCommit"],
        "details": [],
        "deprecated": {},
          "description": "The current value for this range.  <p>Changes to the value property are constrained by <code>commitProperties()</code> to be greater than or equal to the <code>minimum</code> property, less than or equal to the <code>maximum</code> property, and a multiple of <code>snapInterval</code> with the <code>nearestValidValue()</code> method.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "see",
               "values": ["#setValue", "#nearestValidValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "snapInterval",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The snapInterval property controls the valid values of the <code>value</code> property.  If nonzero, valid values are the sum of the <code>minimum</code> and integer multiples of this property, for all sums that are less than or equal to the <code>maximum</code>.  <p>For example, if <code>minimum</code> is 10, <code>maximum</code> is 20, and this property is 3, then the valid values of this Range are 10, 13, 16, 19, and 20.</p>  <p>If the value of this property is zero, then valid values are only constrained to be between minimum and maximum inclusive.</p>  <p>This property also constrains valid values for the <code>stepSize</code> property when set. If this property is not explicitly set and <code>stepSize</code> is set, then <code>snapInterval</code> defaults to <code>stepSize</code>.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["1"]},
            {  "tagName": "see",
               "values": ["#nearestValidValue"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "nearestValidValue",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the sum of the minimum with an integer multiple of <code>interval</code> that's closest to <code>value</code>, unless <code>value</code> is closer to the maximum limit, in which case the maximum is returned.  <p>If <code>interval</code> is equal to 0, the value is clipped to the minimum and maximum limits.</p>  <p>The valid values for a range are defined by the sum of the <code>minimum</code> property with multiples of the <code>interval</code> and also defined to be less than or equal to the <code>maximum</code> property.  The maximum need not be a multiple of <code>snapInterval</code>.</p>  <p>For example, if <code>minimum</code> is equal to 1, <code>maximum</code> is equal to 6, and <code>snapInterval</code> is equal to 2, the valid values for the Range are 1, 3, 5, 6.  Similarly, if <code>minimum</code> is equal to 2, <code>maximum</code> is equal to 9, and <code>snapInterval</code> is equal to 1.5, the valid values for the Range are 2, 3.5, 5, 6.5, 8, and 9.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["value The input value.", "interval The value of snapInterval or an integer multiple of snapInterval."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "return",
               "values": ["The valid value that's closest to the input."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "value", "type": "Number"},
        { "name": "interval", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "setValue",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets the backing store for the <code>value</code> property and dispatches a <code>valueCommit</code> event if the property changes.  <p>All updates to the <code>value</code> property cause a call to this method.</p>  <p>This method assumes that the caller has already used the <code>nearestValidValue()</code> method to constrain the value parameter</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["#nearestValidValue"]},
            {  "tagName": "param",
               "values": ["value The new value of the <code>value</code> property."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "value", "type": "Number"}]}
      ,
      { "type": "method",
        "qname": "changeValueByStep",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Increases or decreases <code>value</code> by <code>stepSize</code>.",
        "tags": [
        {  "tagName": "param",
               "values": ["increase If true, adds <code>stepSize</code> to <code>value</code>, otherwise, subtracts it."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 1.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "increase", "type": "Boolean"}]}
      ]
  }
