mx.resources
public class ResourceBundle
继承ResourceBundle Inheritance Object
实现 IResourceBundle

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

Flex 应用程序通常具有此类的多个实例,所有实例都由 ResourceManager 类的单个实例管理。多个语言环境可以具有多个一一对应的 ResourceBundle 实例。多个 ResourceBundle 实例可以使用不同的束名称。

另请参见

mx.resources.IResourceBundle
mx.resources.IResourceManager
Introduction to localization


公共属性
 属性定义方
  bundleName : String
[只读 (read-only)] 标识此资源束的名称,如“MyResources”。
ResourceBundle
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  content : Object
[只读 (read-only)] 包含该资源束中资源的键/值对的对象。
ResourceBundle
  locale : String
[只读 (read-only)] 该束的资源已本地化的语言环境。
ResourceBundle
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
ResourceBundle(locale:String = null, bundleName:String = null)
构造函数。
ResourceBundle
  
getBoolean(key:String, defaultValue:Boolean = true):Boolean
从 ResourceBundle 获取 Boolean。
ResourceBundle
  
从 ResourceBundle 中获取 Number。
ResourceBundle
  
从 ResourceBundle 中获取 Object。
ResourceBundle
  
[静态] 如果就单一语言环境编译应用程序,此方法可以在提供资源束名称时返回 ResourceBundle。由于 Flex 框架现在支持在同一应用程序中使用对应于多个语言环境的多个资源束,因此该方法已不适合使用。
ResourceBundle
  
从 ResourceBundle 中获取 String。
ResourceBundle
  
从 ResourceBundle 中获取 String 数组。
ResourceBundle
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
受保护的方法
 方法定义方
  
将属性文件编译到资源束中时,MXML 编译器会自动生成 ResourceBundle 的子类。
ResourceBundle
属性详细信息
bundleName属性
bundleName:String  [只读 (read-only)]

标识此资源束的名称,如 "MyResources"

该只读属性在构造资源束时设置。

从编译的属性文件自动创建的资源束的束名称根据这些文件的名称而创建。例如,名为 MyResources.properties 的属性文件会生成 bundleName"MyResources" 的资源束。

ResourceManager 可以管理具有相同 bundleName 的多个束(只要这些束的 locale 属性的值不同)。



实现
    public function get bundleName():String
content属性 
content:Object  [只读 (read-only)]

包含该资源束中资源的键/值对的对象。

通常,应该通过使用 IResourceManager 方法(如 getString())来访问资源,而不应直接在资源束中访问资源。但是,如果以编程方式创建自己的资源束,则可以在初始化时指定资源,如下所示:

var rb:IResourceBundle = new ResourceBundle("fr_FR", "MyResources");
      rb.content["LANGUAGE"] = "Francais";
      rb.content["GREETING"] = "Bonjour";

通过编译属性文件生成资源束时,资源束的资源值类型为 String 或 Class。例如,如果属性文件包含

LANGUAGE=English
      MINIMUM_AGE=18
      ENABLED=true
      LOGO=Embed("logo.png")

LANGUAGE 资源的值为 String "English"MINIMUM_AGE 资源的值为 String "18"ENABLED 资源的值为 String "true"LOGO 资源的值是表示嵌入 PNG 文件的 Class。

可以使用 IResourceManager 方法(如 getInt()getBoolean())将资源字符串(如 "18""true")转换成代码所需的类型。



实现
    public function get content():Object
locale属性 
locale:String  [只读 (read-only)]

该束的资源已本地化的语言环境。这是一个 String,如用 "en_US" 表示美国英语。

该只读属性在构造资源束时设置。

从编译的属性文件自动创建的资源束的语言环境根据 mxmlc 或 compc 编译器的 -compiler.locale 选项创建。例如,假设使用选项 -compiler.locale=en_US,ja_JP 编译应用程序,并且已经指定 -compiler.source-path=resources/{locale} 以便在 resources/en_US/MyResources.properties 和 resources/ja_JP/MyResources.properties 中查找应用程序的资源。则应用程序将创建两个资源束,资源束的 bundleName"MyResources",一个 locale"en_US",另一个 locale"ja_JP"



实现
    public function get locale():String
构造函数详细信息
ResourceBundle()构造函数
public function ResourceBundle(locale:String = null, bundleName:String = null)

构造函数。

参数
locale:String (default = null) — 语言环境字符串,如 "en_US"
 
bundleName:String (default = null) — 标识此资源束的名称,如 "MyResources"
方法详细信息
getBoolean()方法
public function getBoolean(key:String, defaultValue:Boolean = true):Boolean
自以下日期起不推荐使用 3.0: 请使用 ResourceManager.getInstance().getBoolean()

从 ResourceBundle 获取 Boolean。

如果该资源束中不存在 key 参数所指定的资源,此方法将引发错误。

由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getBoolean() 方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager 属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance() 方法来获取该对象。

参数

key:String — 标识此 ResourceBundle 中资源的字符串。
 
defaultValue:Boolean (default = true) — 将资源值转换为小写字母后,如果资源值既不是字符串 "true",也不是字符串 "false",则返回该值。该参数是可选的;其默认值是 true

返回
Boolean — 作为指定的资源如 Boolean 的值。
getContent()方法 
protected function getContent():Object

将属性文件编译到资源束中时,MXML 编译器会自动生成 ResourceBundle 的子类。子类会覆盖此方法,从而返回包含资源束资源键/值对的 Object。

在创建自己的 ResourceBundle 实例时,可以设置该 content 对象的键/值对。

返回
Object — 包含资源束资源键/值对的 Object。
getNumber()方法 
public function getNumber(key:String):Number
自以下日期起不推荐使用 3.0: 请使用 ResourceManager.getInstance().getNumber()

从 ResourceBundle 中获取 Number。

如果该资源束中不存在 key 参数所指定的资源,此方法将引发错误。

由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getNumber()getInt()getUint() 方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager 属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance() 方法来获取该对象。

参数

key:String — 标识此 ResourceBundle 中资源的字符串。

返回
Number — 作为指定的资源如 Number 的值。
getObject()方法 
public function getObject(key:String):Object
自以下日期起不推荐使用 3.0: 请使用 ResourceManager.getInstance().getObject()

从 ResourceBundle 中获取 Object。

如果该资源束中不存在 key 参数所指定的资源,此方法将引发错误。

由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getObject()getClass() 方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager 属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance() 方法来获取该对象。

参数

key:String — 标识此 ResourceBundle 中资源的字符串。

返回
Object — 指定资源的值所表示的 Object。
getResourceBundle()方法 
public static function getResourceBundle(baseName:String, currentDomain:ApplicationDomain = null):ResourceBundle
自以下日期起不推荐使用 3.0: 请使用 ResourceManager.getInstance().getResourceBundle()

如果就单一语言环境编译应用程序,此方法可以在提供资源束名称时返回 ResourceBundle。

由于 Flex 框架现在支持在同一应用程序中使用对应于多个语言环境的多个资源束,因此该方法已不适合使用。如果知道资源束的束名称和语言环境,可以使用 IResourceManager 的 getResourceBundle() 方法获取资源束。但是,不应该再直接从 ResourceBundle 访问资源。现在,所有资源都应该通过 IResourceManager 接口的方法(如 getString())进行访问。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager 属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance() 来获取该对象。

参数

baseName:String — 要返回的资源束的名称。
 
currentDomain:ApplicationDomain (default = null) — 资源束所在的 ApplicationDomain。

返回
ResourceBundle — 与指定的名称和域相匹配的资源束。
getString()方法 
public function getString(key:String):String
自以下日期起不推荐使用 3.0: 请使用 ResourceManager.getInstance().getString()

从 ResourceBundle 中获取 String。

如果该资源束中不存在 key 参数所指定的资源,此方法将引发错误。

由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getString() 方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager 属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance() 方法来获取该对象。

参数

key:String — 标识此 ResourceBundle 中资源的字符串。

返回
String — 作为 String 的指定资源的值。
getStringArray()方法 
public function getStringArray(key:String):Array
自以下日期起不推荐使用 3.0: 请使用 ResourceManager.getInstance().getStringArray()

从 ResourceBundle 中获取 String 数组。

生成数组时假定实际资源值是包含逗号分隔的项目的字符串,如 "India, China, Japan"。按逗号位置将字符串拆分成多项,然后去掉每项前后的空格。

如果该资源束中不存在 key 参数所指定的资源,此方法将引发错误。

由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getStringArray() 方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager 属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance() 来获取该对象。

参数

key:String — 标识此 ResourceBundle 中资源的字符串。

返回
Array — 作为 String 数组的指定资源的值。