包 | mx.resources |
类 | public class ResourceBundle |
继承 | ResourceBundle Object |
实现 | IResourceBundle |
Flex 应用程序通常具有此类的多个实例,所有实例都由 ResourceManager 类的单个实例管理。多个语言环境可以具有多个一一对应的 ResourceBundle 实例。多个 ResourceBundle 实例可以使用不同的束名称。
另请参见
属性 | 定义方 | ||
---|---|---|---|
bundleName : String [只读 (read-only)] 标识此资源束的名称,如“MyResources”。 | ResourceBundle | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
content : Object [只读 (read-only)] 包含该资源束中资源的键/值对的对象。 | ResourceBundle | ||
locale : String [只读 (read-only)] 该束的资源已本地化的语言环境。 | ResourceBundle | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object |
方法 | 定义方 | ||
---|---|---|---|
构造函数。 | ResourceBundle | ||
从 ResourceBundle 获取 Boolean。 | ResourceBundle | ||
从 ResourceBundle 中获取 Number。 | ResourceBundle | ||
从 ResourceBundle 中获取 Object。 | ResourceBundle | ||
[静态] 如果就单一语言环境编译应用程序,此方法可以在提供资源束名称时返回 ResourceBundle。由于 Flex 框架现在支持在同一应用程序中使用对应于多个语言环境的多个资源束,因此该方法已不适合使用。 | ResourceBundle | ||
从 ResourceBundle 中获取 String。 | ResourceBundle | ||
从 ResourceBundle 中获取 String 数组。 | ResourceBundle | ||
指示对象是否已经定义了指定的属性。 | Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | 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
从 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
从 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
从 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
如果就单一语言环境编译应用程序,此方法可以在提供资源束名称时返回 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
从 ResourceBundle 中获取 String。
如果该资源束中不存在 key
参数所指定的资源,此方法将引发错误。
由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getString()
方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager
属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance()
方法来获取该对象。
参数
key:String — 标识此 ResourceBundle 中资源的字符串。 |
String — 作为 String 的指定资源的值。 |
getStringArray | () | 方法 |
public function getStringArray(key:String):Array
从 ResourceBundle 中获取 String 数组。
生成数组时假定实际资源值是包含逗号分隔的项目的字符串,如 "India, China, Japan"
。按逗号位置将字符串拆分成多项,然后去掉每项前后的空格。
如果该资源束中不存在 key
参数所指定的资源,此方法将引发错误。
由于所有资源现在都应通过 IResourceManager 接口的方法访问,因此该方法已不适合使用。应该转换代码,改为调用 IResourceManager 的 getStringArray()
方法。所有扩展 UIComponent、Formatter 或 Validator 的类都具有 resourceManager
属性,通过该属性提供对实现此接口的对象的引用。其他类可以调用 ResourceManager.getInstance()
来获取该对象。
参数
key:String — 标识此 ResourceBundle 中资源的字符串。 |
Array — 作为 String 数组的指定资源的值。 |