mx.resources
public class ResourceManagerImpl
继承ResourceManagerImpl Inheritance EventDispatcher Inheritance Object
实现 IResourceManager

此类提供 IResourceManager 接口的实现。IResourceManager 和 IResourceBundle 接口共同为 Flex 应用程序提供国际化支持。

此类的单个实例管理 Flex 应用程序的所有本地化资源。

另请参见

mx.resources.IResourceManager
mx.resources.IResourceBundle


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  localeChain : Array
(抽样开始)语言环境字符串(如 [ "en_US" ]) Array,指定要搜索资源的一个或多个语言环境。
ResourceManagerImpl
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
构造函数。
ResourceManagerImpl
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
将指定的 ResourceBundle 添加到 ResourceManager,以便可通过 ResourceManager 方法(如 getString())访问其资源。
ResourceManagerImpl
 Inherited
将事件调度到事件流中。
EventDispatcher
  
ResourceManagerImpl
  
getBoolean(bundleName:String, resourceName:String, locale:String = null):Boolean
获取指定资源的值作为 Boolean。
ResourceManagerImpl
  
返回一个字符串数组,指定所有位于 ResourceManager 中并且属于指定语言环境的 ResourceBundle 对象的束名称。
ResourceManagerImpl
  
getClass(bundleName:String, resourceName:String, locale:String = null):Class
获取指定资源的值作为 Class。
ResourceManagerImpl
  
[静态] 获取 ResourceManagerImpl 类的单个实例。
ResourceManagerImpl
  
getInt(bundleName:String, resourceName:String, locale:String = null):int
获取指定资源的值作为 int。
ResourceManagerImpl
  
返回一个字符串数组,指定 ResourceBundle 对象位于 ResourceManager 中的所有语言环境。
ResourceManagerImpl
  
getNumber(bundleName:String, resourceName:String, locale:String = null):Number
获取指定资源的值作为 Number。
ResourceManagerImpl
  
getObject(bundleName:String, resourceName:String, locale:String = null):*
获取指定资源的值作为 Object。
ResourceManagerImpl
  
返回 String 的一个 Array,它指定在 ResourceManager 中存在 ResourceBundle 对象的所有语言环境,使用由 Capabilities.language 或 Capabilities.languages 报告的用户首选项进行排序。
ResourceManagerImpl
  
返回之前使用 addResourceBundle() 添加到 ResourceManager 的具有指定语言环境和束名称的 ResourceBundle。
ResourceManagerImpl
  
getString(bundleName:String, resourceName:String, parameters:Array = null, locale:String = null):String
使用指定的值替换占位符之后,获取指定资源的值作为 String。
ResourceManagerImpl
  
getStringArray(bundleName:String, resourceName:String, locale:String = null):Array
获取指定资源的值作为 String 数组。
ResourceManagerImpl
  
getUint(bundleName:String, resourceName:String, locale:String = null):uint
获取指定资源的值作为 uint。
ResourceManagerImpl
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
仅由实现 IFlexModuleFactory 的类使用。
ResourceManagerImpl
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
loadResourceModule(url:String, update:Boolean = true, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null):IEventDispatcher
开始加载包含资源束的资源模块。
ResourceManagerImpl
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
从 ResourceManager 删除指定的 ResourceBundle,以便不再能通过 ResourceManager 方法(如 getString())访问其资源。
ResourceManagerImpl
  
从 ResourceManager 删除指定的语言环境所对应的全部 ResourceBundle,以便不再能通过 ResourceManager 方法(如 getString())访问其资源。
ResourceManagerImpl
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
  
此方法尚未实现。
ResourceManagerImpl
  
从 ResourceManager 调度 change 事件。
ResourceManagerImpl
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  ResourceManagerImpl
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
属性详细信息
localeChain属性
localeChain:Array  [读写]

语言环境字符串(如 [ "en_US" ])数组,指定要搜索资源的一个或多个语言环境。

通过调用 ResourceManager 方法 getObject()getString()getStringArray()getNumber()getInt()getUint()getBoolean()getClass() 来获取资源值时,指定的是束名称和资源名称,而不是语言环境。ResourceManager 从 localeChain 中的第一个语言环境开始查找,查找该语言环境中具有指定束名称的 ResourceBundle。如果存在这样的 ResourceBundle 并且其中存在指定的资源,则会返回该资源的值。否则,ResourceManager 将继续查找 localeChain 中的其他语言环境。

通过此方案,可以使用不必包含完整一套本地化资源的语言环境。例如,如果要将应用程序本地化以便用于印第安英语而不是美国英语,只需要提供拼写或用法与美国英语不同的印第安英语的 en_IN 语言环境资源,然后将 localeChain 属性设置为 [ "en_IN", "en_US" ] 即可。

很多框架类都假定它们始终可从某些语言环境获取所需资源;如果无法获取,这些框架类将引发错误。因此,必须确保 localeChain 始终包含完整的一套资源。除非已完成所有框架资源和自己的应用程序资源的全部本地化,否则可以将 "en_US" 语言环境保留在 localeChain 的末尾来确保此要求得到满足。

设置此属性将导致 ResourceManager 调度 "change" 事件。



实现
    public function get localeChain():Array
    public function set localeChain(value:Array):void
构造函数详细信息
ResourceManagerImpl()构造函数
public function ResourceManagerImpl()

构造函数。

方法详细信息
addResourceBundle()方法
public function addResourceBundle(resourceBundle:IResourceBundle):void

将指定的 ResourceBundle 添加到 ResourceManager,以便可通过 ResourceManager 方法(如 getString())访问其资源。

参数

resourceBundle:IResourceBundle — 要添加的资源束。

findResourceBundleWithResource()方法 
public function findResourceBundleWithResource(bundleName:String, resourceName:String):IResourceBundle

参数

bundleName:String
 
resourceName:String

返回
IResourceBundle
getBoolean()方法 
public function getBoolean(bundleName:String, resourceName:String, locale:String = null):Boolean

获取指定资源的值作为 Boolean。

此方法首先调用 getString()并将结果转换为小写字符。然后,如果结果为 "true",则返回 true;否则返回 false

如果未找到指定的资源,则此方法将返回 false

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
Boolean — 作为 Boolean 的资源值,或者 false(如果未找到该值)。
getBundleNamesForLocale()方法 
public function getBundleNamesForLocale(locale:String):Array

返回一个字符串数组,指定所有位于 ResourceManager 中并且属于指定语言环境的 ResourceBundle 对象的束名称。

未指定该数组中的束名称顺序。

参数

locale:String — 语言环境字符串,如 "en_US"

返回
Array — 束名称数组。
getClass()方法 
public function getClass(bundleName:String, resourceName:String, locale:String = null):Class

获取指定资源的值作为 Class。

此方法调用 getObject() 并使用 as 运算符将其强制为 Class 类型。如果资源值不是类引用,则结果将为 null。如果已在属性文件中编写如下行:

IMAGE=Embed("image.jpg")
      BUTTON_SKIN=ClassReference("skins.ButtonSkin_en_US")

并且想要获得 Embed()ClassReference() 指令生成的类,则该方法很有用。

如果未找到指定的资源,则此方法将返回 null

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
Class — 作为 Class 的资源值,或者 null(如果未找到该值)。
getInstance()方法 
public static function getInstance():IResourceManager

获取 ResourceManagerImpl 类的单个实例。该对象管理 Flex 应用程序的所有本地化资源。

返回
IResourceManager — 实现 IResourceManager 的对象。
getInt()方法 
public function getInt(bundleName:String, resourceName:String, locale:String = null):int

获取指定资源的值作为 int。

此方法调用 getObject()并将结果转换为 int。如果已在属性文件中编写如下行:

MINIMUM=5

并且想要获取值 5 而不是 "5",则该方法很有用。

如果未找到指定的资源,则此方法将返回 0。

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
int — 作为 int 的资源值,或者 0(如果未找到该值)。
getLocales()方法 
public function getLocales():Array

返回一个字符串数组,指定 ResourceBundle 对象位于 ResourceManager 中的所有语言环境。

未指定该数组中的语言环境顺序。

返回
Array — 语言环境字符串数组。
getNumber()方法 
public function getNumber(bundleName:String, resourceName:String, locale:String = null):Number

获取指定资源的值作为 Number。

此方法调用 getObject()并将结果转换为数字。如果已在属性文件中编写如下行:

LONGITUDE=170.3

并且想要获取值 170.3 而不是 "170.3",则该方法很有用。

如果未找到指定的资源,则此方法将返回 NaN

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
Number — 作为 Number 的资源值,或者 NaN(如果未找到该值)。
getObject()方法 
public function getObject(bundleName:String, resourceName:String, locale:String = null):*

获取指定资源的值作为 Object。

返回与 ResourceBundle 的 content 对象中存储的值完全相同的值,不经过任何转换。如果资源是从属性文件中编译的,则 content 对象中的资源值始终为字符串,除非使用 Embed()ClassReference() 指令(在这种情况下资源值为类)。可使用 getString()getStringArray()getNumber()getInt()getUint()getBoolean()getClass() 方法将该值转换为更多特定类型。

如果未找到指定的资源,则此方法将返回 undefined

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
* — 与在 content 对象中存储的值完全相同的资源值,或者 undefined(如果未找到资源)。
getPreferredLocaleChain()方法 
public function getPreferredLocaleChain():Array

返回 String 的一个 Array,它指定在 ResourceManager 中存在 ResourceBundle 对象的所有语言环境,使用由 Capabilities.languageCapabilities.languages 报告的用户首选项进行排序。

返回
Array — 语言环境字符串数组。
getResourceBundle()方法 
public function getResourceBundle(locale:String, bundleName:String):IResourceBundle

返回之前使用 addResourceBundle() 添加到 ResourceManager 的具有指定 localebundleName 的 ResourceBundle。如果不存在这样的 ResourceBundle,则此方法返回 null

参数

locale:String — 语言环境字符串,如 "en_US"
 
bundleName:String — 束名称,如 "MyResources"

返回
IResourceBundle — 具有指定 localebundleName 的 ResourceBundle,如果不存在则返回 null
getString()方法 
public function getString(bundleName:String, resourceName:String, parameters:Array = null, locale:String = null):String

使用指定的值替换占位符之后,获取指定资源的值作为 String。

此方法调用 getObject()并将结果转换为字符串。

如果将 parameters 数组传递给此方法,则数组中包含的参数会转换成字符串,然后在返回前在字符串中按顺序替代占位符 "{0}""{1}" 等。

如果未找到指定的资源,则此方法将返回 null

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
parameters:Array (default = null) — 替换占位符的参数的数组。在替换每个参数之前都会使用 toString() 方法将其转换为字符串。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
String — 作为 String 的资源值,或者 null(如果未找到该值)。
getStringArray()方法 
public function getStringArray(bundleName:String, resourceName:String, locale:String = null):Array

获取指定资源的值作为 String 数组。

此方法假定资源值是包含用逗号分隔的项目列表的字符串。它将调用 getString() 方法,按逗号位置将字符串拆分成多项,并去掉每项前后的空格。如果已在属性文件中编写如下行:

COUNTRIES=India, China, Japan

并且想要获取值 [ "India", "China", "Japan" ] 而不是值 "India, China, Japan",则该方法很有用。

如果未找到指定的资源,则此方法将返回 null

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
Array — 作为 String 数组的资源值,或者 null(如果未找到该值)。
getUint()方法 
public function getUint(bundleName:String, resourceName:String, locale:String = null):uint

获取指定资源的值作为 uint。

此方法调用 getObject() 方法并将结果转换为 uint。如果已在属性文件中编写如下行:

MINIMUM=5

并且想要获取值 5 而不是 "5",则该方法很有用。

如果未找到指定的资源,则此方法将返回 0。

参数

bundleName:String — 资源束的名称。
 
resourceName:String — 资源束中资源的名称。
 
locale:String (default = null) — 要用于查找的特定语言环境,或者使用 null 来搜索 localeChain 中的所有语言环境。该参数是可选的,默认值为 null;应该很少需要指定该参数。

返回
uint — 作为 uint 的资源值,或者 0(如果未找到该值)。
initializeLocaleChain()方法 
public function initializeLocaleChain(compiledLocales:Array):void

仅由实现 IFlexModuleFactory 的类使用。

参数

compiledLocales:Array

loadResourceModule()方法 
public function loadResourceModule(url:String, update:Boolean = true, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null):IEventDispatcher

开始加载包含资源束的资源模块。

每次调用此方法都会返回一个新的 event-dispatching 对象,可使用该对象了解加载的进度以及加载是成功完成还是产生了错误。该对象调度 ResourceEvent.PROGRESSResourceEvent.COMPLETEResourceEvent.ERROR 事件。

加载模块之后,资源束将添加到 ResourceManager,但 localeChain 保持不变。如果 update 参数为 true,将调用 update() 方法。

参数

url:String — 用来加载资源模块的 URL。
 
update:Boolean (default = true) — 完成模块加载时是否调用 update() 方法。
 
applicationDomain:ApplicationDomain (default = null) — 传递给加载资源模块的 IModuleInfo 类的 load() 方法的 ApplicationDomain。该参数可选,默认值为 null
 
securityDomain:SecurityDomain (default = null) — 传递给加载资源模块的 IModuleInfo 类的 load() 方法的 SecurityDomain。该参数可选,默认值为 null

返回
IEventDispatcher — 与该特定加载操作相关联的对象,用于调度 ResourceEvent.PROGRESSResourceEvent.COMPLETEResourceEvent.ERROR
removeResourceBundle()方法 
public function removeResourceBundle(locale:String, bundleName:String):void

从 ResourceManager 删除指定的 ResourceBundle,以便不再能通过 ResourceManager 方法(如 getString())访问其资源。

参数

locale:String — 语言环境字符串,如 "en_US"
 
bundleName:String — 束名称,如 "MyResources"

removeResourceBundlesForLocale()方法 
public function removeResourceBundlesForLocale(locale:String):void

从 ResourceManager 删除指定的语言环境所对应的全部 ResourceBundle,以便不再能通过 ResourceManager 方法(如 getString())访问其资源。

参数

locale:String — 语言环境字符串,如 "en_US"

unloadResourceModule()方法 
public function unloadResourceModule(url:String, update:Boolean = true):void

此方法尚未实现。

参数

url:String
 
update:Boolean (default = true)

update()方法 
public function update():void

从 ResourceManager 调度 change 事件。

如果涉及 ResourceManager 方法 getObject()getString()getStringArray()getNumber()getInt()getUint()getBoolean()getClass(),则会导致重新计算绑定的表达式。

该操作还会引起执行 UIComponent、Formatter 或 Validator 的 resourcesChanged() 方法。很多组件通过实现此方法来根据最新资源更新其状态。

事件详细信息
change 事件
事件对象类型: flash.events.Event
属性 Event.type = eventType