{ "type": "interface",
  "qname": "mx.resources.IResourceManager",
"baseInterfaceNames": [
"org.apache.royale.events.IEventDispatcher"]
,
    "description": "The APIs of the IResourceManager interface provide localization support for Flex applications.  <p>There are three main concepts involved in localization: locales, resources, and resource bundles.</p>  <p>A locale specifies a language and a country for which your application has been localized. For example, the locale <code>&quot;en_US&quot;</code> specifies English as spoken in the United States. (See the mx.resources.Locale class for more information.)</p>  <p>A resource is a named value that is locale-dependent. For example, your application might have a resource whose name is <code>&quot;OPEN&quot;</code> and whose value for an English locale is <code>&quot;Open&quot;</code> but whose value for a French locale is <code>&quot;Ouvrir&quot;</code>.</p>  <p>A resource bundle is a named group of resources whose values have been localized for a particular locale. A resource bundle is identified by the combination of its <code>bundleName</code> and its <code>locale</code>, and has a <code>content</code> object that contains the name-value pairs for the bundle's resources. See the documentation for mx.resources.IResourceBundle for information about how you typically create resource bundles from properties files.</p>  <p>A single ResourceManager object implementing the IResourceManager interface manages multiple resource bundles, possibly for multiple locales, and provides access to the resources that they contain. For example, you can retrieve a specific resource as a String by calling <code>resourceManager.getString(bundleName, resourceName)</code>.</p>  <p>All classes that extend UIComponent, Formatter, or Validator have a <code>resourceManager</code> property that provides a reference to the object implementing this interface. Other classes can call <code>ResourceManager.getInstance()</code> to obtain this object.</p>  <p>Resource retrieval methods such as <code>getString()</code> search for resources in the locales specified by the <code>localeChain</code> property. By changing this property, you can make your application suddenly use, for example, Japanese rather than English resources.</p>  <p>When your application starts, the ResourceManager is automatically populated with whatever resource bundles were compiled into the application. If you create a code module, by default the resources that its classes need are compiled into the module. When the module is loaded into an application, any bundles that the application does not already have are added to the ResourceManager.</p>  <p>You can compile &quot;resource modules&quot; which have only resources in them, and load them with the <code>loadResourceModule()</code> method of IResourceManager. With resource modules, you can support multiple locales by loading the resources you need at run time rather than compiling them into your application.</p>  <p>Although the ResourceManager is normally populated with resource bundles that were compiled into your application or loaded from modules, you can also programmatically create resource bundles and add them to the ResourceManager yourself with the <code>addResourceBundle()</code> method.</p>",
  "tags": [
  {  "tagName": "see",
         "values": ["mx.resources.ResourceManager", "mx.resources.IResourceBundle", "mx.resources.ResourceBundle"]},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "accessor",
    "access": "read-write",
    "return": "Array",
    "qname": "localeChain",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "An Array of locale Strings, such as <code>[ &quot;en_US&quot; ]</code>, which specifies one or more locales to be searched for resources.  <p>When you call the ResourceManager methods <code>getObject()</code>, <code>getString()</code>, <code>getStringArray()</code>, <code>getNumber()</code>, <code>getInt()</code>, <code>getUint()</code>, <code>getBoolean()</code>, or <code>getClass()</code> to get the value of a resource, you specify a bundle name and a resource name, but not a locale. The ResourceManager starts with the first locale in the <code>localeChain</code> and looks for a ResourceBundle with the specified bundle name for that locale. If such a ResourceBundle exists, and the specified resource exists in it, then the value of that resource is returned. Otherwise, the ResourceManager proceeds on to the other locales in the <code>localeChain</code>.</p>  <p>This scheme makes it possible to have locales that do not necessarily contain a complete set of localized resources. For example, if you are localizing your application for Indian English rather than U.S. English, you need only supply resources for the <code>en_IN</code> locale in which the Indian spelling or usage differs from that in the U.S., and then set the <code>localeChain</code> property to <code>[ &quot;en_IN&quot;, &quot;en_US&quot; ]</code>.</p>  <p>Many framework classes assume that they can always obtain, from some locale, the resources that they expect, and they will throw errors if they cannot do so. Therefore, you must ensure that the <code>localeChain</code> always contains a complete set of resources. Unless you have done a complete localization of all the framework's resources as well as your own application's resources, you can keep the <code>&quot;en_US&quot;</code> locale at the end of your <code>localeChain</code> to ensure this.</p>  <p>Setting this property causes the ResourceManager to dispatch a <code>&quot;change&quot;</code> Event.</p>",
    "tags": [
    {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ]},
  { "type": "method",
    "qname": "addResourceBundle",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Adds the specified ResourceBundle to the ResourceManager so that its resources can be accessed by ResourceManager methods such as <code>getString()</code>.  keeps a weak reference to the resource bundle. If <code>useWeakReference</code> is <code>true</code> then the ResourceManager provides a weak reference to the resource bundle. When the caller chooses to use a weak reference it becomes the caller's responsibility to keep a hard reference the resource bundle so it is not garbaged collected prematurely. If <code>useWeakReference</code> is <code>false</code>, the ResourceManager keeps a hard reference to the resource bundle so it will not be garbage collected.  <p>When a Flex sub-application or module automatically adds its compiled resource bundles to the ResourceManager, it calls the <code>addResourceBundle()</code> with <code>useWeakReference</code> set to <code>true</code>, to avoid becoming pinned in memory. If you create resource bundles at runtime in a sub-application or module, you should do the same. You then need to hold on to these resource bundles with a hard reference to prevent them from being garbage collected.</p>",
    "tags": [
    {  "tagName": "param",
           "values": ["resourceBundle The resource bundle to be added.", "useWeakReference Determines if the ResourceManager"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "resourceBundle", "type": "mx.resources.IResourceBundle"},
    { "name": "useWeakReference", "type": "Boolean"}]}
  ,
  { "type": "method",
    "qname": "removeResourceBundle",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Removes the specified ResourceBundle from the ResourceManager so that its resources can no longer be accessed by ResourceManager methods such as <code>getString()</code>.",
    "tags": [
    {  "tagName": "see",
           "values": ["mx.resources.IResourceBundle"]},
        {  "tagName": "param",
           "values": ["locale A locale string such as <code>"en_US"</code>.", "bundleName A bundle name such as <code>"MyResources"</code>."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "locale", "type": "String"},
    { "name": "bundleName", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "removeResourceBundlesForLocale",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Removes all ResourceBundles for the specified locale from the ResourceManager so that their resources can no longer be accessed by ResourceManager methods such as <code>getString()</code>.",
    "tags": [
    {  "tagName": "see",
           "values": ["mx.resources.IResourceBundle"]},
        {  "tagName": "param",
           "values": ["locale A locale string such as <code>"en_US"</code>."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "update",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Dispatches a <code>change</code> event from the ResourceManager.  <p>This causes binding expressions to re-evaluate if they involve the ResourceManager methods <code>getObject()</code>, <code>getString()</code>, <code>getStringArray()</code>, <code>getNumber()</code>, <code>getInt()</code>, <code>getUint()</code>, <code>getBoolean()</code>, or <code>getClass()</code>.</p>  <p>This also causes the <code>resourcesChanged()</code> method of a UIComponent, Formatter, or Validator to execute. Many components implement this method to update their state based on the latest resources.</p>",
    "tags": [
    {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": []}
  ,
  { "type": "method",
    "qname": "getLocales",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Returns an Array of Strings specifying all locales for which ResourceBundle objects exist in the ResourceManager.  <p>The order of locales in this array is not specified.</p>",
    "tags": [
    {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["An Array of locale Strings."]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Array",
      "params": []}
  ,
  { "type": "method",
    "qname": "getPreferredLocaleChain",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Returns an Array of Strings specifying all locales for which ResourceBundle objects exist in the ResourceManager, ordered using  user preferences as reported by <code>Capabilities.language</code> or <code>Capabilities.languages</code>.",
    "tags": [
    {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["An Array of locale Strings."]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Array",
      "params": []}
  ,
  { "type": "method",
    "qname": "getBundleNamesForLocale",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Returns an Array of Strings specifying the bundle names for all ResourceBundle objects that exist in the ResourceManager and that belong to the specified locale.  <p>The order of bundle names in this Array is not specified.</p>",
    "tags": [
    {  "tagName": "see",
           "values": ["mx.resources.IResourceBundle"]},
        {  "tagName": "param",
           "values": ["locale A locale string such as <code>"en_US"</code>."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["An Array of bundle names."]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Array",
      "params": [{ "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getResourceBundle",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Returns a ResourceBundle with the specified <code>locale</code> and <code>bundleName</code> that has been previously added to the ResourceManager with <code>addResourceBundle()</code>. If no such ResourceBundle exists, this method returns <code>null</code>.    and <code>bundleName</code> if one exists; otherwise <code>null</code>.",
    "tags": [
    {  "tagName": "see",
           "values": ["mx.resources.IResourceBundle"]},
        {  "tagName": "param",
           "values": ["locale A locale string such as <code>"en_US"</code>.", "bundleName A bundle name such as <code>"MyResources"</code>."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The ResourceBundle with the specified <code>locale</code>"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "mx.resources.IResourceBundle",
      "params": [{ "name": "locale", "type": "String"},
    { "name": "bundleName", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "findResourceBundleWithResource",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Searches the locales in the <code>localeChain</code> for the specified resource and returns the first resource bundle in which it is found. If the resource isn't found, this method returns <code>null</code>.    that contains the specified resource, or <code>null</code>.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName A bundle name such as <code>"MyResources"</code>.", "resourceName The name of a resource in the resource bundle."]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The first ResourceBundle in the <code>localeChain</code>"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "mx.resources.IResourceBundle",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getObject",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as an Object.  <p>The value is returned exactly as it is stored in the <code>content</code> Object of the ResourceBundle, with no conversion. If the resource was compiled from a properties files, the resource value in the <code>content</code> Object is always a String unless you used the <code>Embed()</code> or <code>ClassReference()</code> directive, in which case it is a Class. Use the <code>getString()</code>, <code>getStringArray()</code>, <code>getNumber()</code>, <code>getInt()</code> <code>getUint()</code>, <code>getBoolean()</code>, and <code>getClass()</code> methods to convert the value to more specific types.</p>  <p>If the specified resource is not found, this method returns <code>undefined</code>.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  in the <code>content</code> Object, or <code>undefined</code> if the resource is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, exactly as it is stored"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "*",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getString",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as a String, after substituting specified values for placeholders.  <p>This method calls <code>getObject()</code> and then casts the result to a String.</p>  <p>If a <code>parameters</code> Array is passed to this method, the parameters in it are converted to Strings and then substituted, in order, for the placeholders <code>&quot;{0}&quot;</code>, <code>&quot;{1}&quot;</code>, and so on, in the String before it is returned.</p>  <p>If the specified resource is not found, this method returns <code>null</code>.</p>    substituted for the placeholders. Each parameter is converted to a String with the <code>toString()</code> method before being substituted.  or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or <code>null</code> if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "parameters An Array of parameters that are", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as a String,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "String",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "parameters", "type": "Array"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getStringArray",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as an Array of Strings.  <p>This method assumes that the resource value is a String containing a comma-separated list of items. It calls the <code>getString()</code> method, splits the String into items at the commas, and trims white space before and after each item. It is useful if you have written a line such as:</p>  <pre>\\n COUNTRIES=India, China, Japan\\n </pre>  <p>in a properties file and you want to obtain the value <code>[ &quot;India&quot;, &quot;China&quot;, &quot;Japan&quot; ]</code> rather than the value <code>&quot;India, China, Japan&quot;</code>.</p>  <p>If the specified resource is not found, this method returns <code>null</code>.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or <code>null</code> if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as an Array of Strings,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Array",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getNumber",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as a Number.  <p>This method calls <code>getObject()</code> and casts the result to a Number. It is useful if you have written a line such as:</p>  <pre>\\n LONGITUDE=170.3\\n </pre>  <p>in a properties file and want to obtain the value 170.3 rather than <code>&quot;170.3&quot;</code>.</p>  <p>If the specified resource is not found, this method returns <code>NaN</code>.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or <code>NaN</code> if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as a Number,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Number",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getInt",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as an int.  <p>This method calls <code>getObject()</code> and casts the result to an int. It is useful if you have written a line such as:</p>  <pre>\\n MINIMUM=5\\n </pre>  <p>in a properties file and want to obtain the value 5 rather than <code>&quot;5&quot;</code>.</p>  <p>If the specified resource is not found, this method returns 0.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or 0 if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as an int,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "int",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getUint",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as a uint.  <p>This method calls the <code>getObject()</code> method and casts the result to a uint. It is useful if you have written a line such as:</p>  <pre>\\n MINIMUM=5\\n </pre>  <p>in a properties file and want to obtain the value 5 rather than <code>&quot;5&quot;</code>.</p>  <p>If the specified resource is not found, this method returns 0.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or 0 if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as a uint,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "uint",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getBoolean",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as a Boolean.  <p>This method first calls <code>getString()</code> and converts the result to lowercase. It then returns <code>true</code> if the result was <code>&quot;true&quot;</code>. and <code>false</code> otherwise.</p>  <p>If the specified resource is not found, this method returns <code>false</code>.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or <code>false</code> if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as a Boolean,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Boolean",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "getClass",
    "namespace": "public",
    "bindable": ["change"],
    "details": [],
    "deprecated": {},
      "description": "Gets the value of a specified resource as a Class.  <p>This method calls <code>getObject()</code> and coerces it to type Class using the <code>as</code> operator. The result will be <code>null</code> if the resource value was not a class reference. It is useful if you have written a lines such as</p>  <pre>\\n IMAGE=Embed(&quot;image.jpg&quot;)\\n BUTTON_SKIN=ClassReference(&quot;skins.ButtonSkin_en_US&quot;)\\n </pre>  <p>in a properties file and want to obtain the Class that the <code>Embed()</code> or <code>ClassReference()</code> directive produced.</p>  <p>If the specified resource is not found, this method returns <code>null</code>.</p>    or <code>null</code> to search all locales in the <code>localeChain</code>. This parameter is optional and defaults to <code>null</code>; you should seldom need to specify it.  or <code>null</code> if it is not found.",
    "tags": [
    {  "tagName": "param",
           "values": ["bundleName The name of a resource bundle.", "resourceName The name of a resource in the resource bundle.", "locale A specific locale to be used for the lookup,"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["The resource value, as a <code>Class</code>,"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Class",
      "params": [{ "name": "bundleName", "type": "String"},
    { "name": "resourceName", "type": "String"},
    { "name": "locale", "type": "String"}]}
  ,
  { "type": "method",
    "qname": "installCompiledResourceBundles",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Creates instances of all ResourceBundle subclasses that were compiled into the SWF and adds them to the ResourceManager.  <p>For example, if the <code>locales</code> parameter is [ &quot;en_US&quot;, &quot;ja_JP&quot; ] and the <code>bundleNames</code> parameter is [ &quot;core&quot;, &quot;controls&quot; ], then four resource bundles will be installed.</p>  <p>This method is used only by classes that implement the IFlexModuleFactory interface.</p>  classes by name.   that were compiled into the SWF.  intalled into the ResourceManager using a weak reference.  and added to the ResourceManager.",
    "tags": [
    {  "tagName": "see",
           "values": ["mx.core.IFlexModuleFactory"]},
        {  "tagName": "param",
           "values": ["applicationDomain  The ApplicationDomain that is used to look up the resource bundle", "locales An Array of Strings that specify the locales for which the SWF was compiled.", "bundleNames An Array of Strings that specify the names of the resource bundles", "useWeakReference A flag that specifyies whether the resource bundles should be"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "return",
           "values": ["An Array of the ResourceBundle instances that were created"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "Array",
      "params": [{ "name": "locales", "type": "Array"},
    { "name": "bundleNames", "type": "Array"},
    { "name": "useWeakReference", "type": "Boolean"}]}
  ,
  { "type": "method",
    "qname": "initializeLocaleChain",
    "namespace": "public",
    "bindable": [],
    "details": [],
    "deprecated": {},
      "description": "Initializes the <code>localeChain</code> property of the ResourceManager using an algorithm that compares the operating system's list of user-preferred locales with the list of locales available in the SWF.  <p>For example, if the user has indicated in the operating system that she prefers French, and the SWF was compiled for the locales en_US, fr_FR, and de_DE, then the <code>localeChain</code> will be set so that the first locale in it is fr_FR.</p>  <p>This method is used only by classes that implement the IFlexModuleFactory interface.</p>  for which the SWF was compiled.",
    "tags": [
    {  "tagName": "see",
           "values": ["mx.core.IFlexModuleFactory"]},
        {  "tagName": "param",
           "values": ["compiledLocales An Array of Strings specifying the locales"]},
        {  "tagName": "playerversion",
           "values": ["Flash 9", "AIR 1.1"]},
        {  "tagName": "productversion",
           "values": ["Flex 3"]},
        {  "tagName": "langversion",
           "values": ["3.0"]}  ],
      "return": "void",
      "params": [{ "name": "compiledLocales", "type": "Array"}]}
  ]
  }
