fl.lang
public class Locale
继承Locale Inheritance EventDispatcher Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

使用 fl.lang.Locale 类,可以控制多语言文本在 SWF 文件中的显示方式。 借助“Flash 字符串”面板,可以在动态文本字段中使用字符串 ID 替代字符串。 这样,您就可以创建一个 SWF 文件,用它来显示从特定于语言的 XML 文件加载的文本。 XML 文件必须使用 XML 本地化交换文件格式 (XLIFF)。 要显示 XLIFF 文件中包含的特定于语言的字符串,有三种方法:

当您要在“运行时通过 ActionScript”来替换字符串 ID 时,可以使用此类的属性和方法。

所有可用的属性和方法都是静态的,这意味着要通过 fl.lang.Locale 类本身而不是通过该类的实例来访问它们。

注意:Locale 类安装在 Flash 创作类路径中,并自动编译到您的 SWF 文件中。 由于 Locale 类将编译到 SWF 中,所以使用该类会稍微增加 SWF 文件的大小。

另请参见

flash.system.Capabilities.language



公共 属性
 属性定义方
  autoReplace : Boolean
[static] 确定是否在加载 XML 文件后自动替换字符串。
Locale
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  languageCodeArray : Array
[static] [read-only] 包含语言代码的数组,这些代码对应着指定的语言或加载到 FLA 文件中的语言。
Locale
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
  stringIDArray : Array
[static] [read-only] 包含 FLA 文件中所有字符串 ID 的数组。
Locale
公共 方法
 方法定义方
  
addDelayedInstance(instance:Object, stringID:String):*
[static] 将 {实例, 字符串 ID} 对添加到内部数组中,供以后使用。
Locale
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
addXMLPath(langCode:String, path:String):void
[static] 将 {语言代码和语言路径} 对添加到内部数组中,供以后使用。
Locale
  
[static] 如果加载了 XML 文件,则返回 true;否则返回 false。
Locale
 Inherited
将事件调度到事件流中。
EventDispatcher
  
[static] 在“字符串”面板对话框中或通过调用 setDefaultLang() 方法设置的默认语言代码。
Locale
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
[static] 自动确定要使用的语言并自动加载 XML 语言文件。
Locale
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void
[static] 加载指定的 XML 语言文件。
Locale
  
[static] 使用当前语言返回与给定字符串 ID 关联的字符串值。
Locale
  
loadStringEx(stringID:String, languageCode:String):String
[static] 返回与给定字符串 ID 和语言代码关联的字符串值。
Locale
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
[static] 设置默认语言代码。
Locale
  
setLoadCallback(loadCallback:Function):*
[static] 设置在加载 XML 文件后调用的回调函数。
Locale
 Inherited
设置循环操作动态属性的可用性。
Object
  
setString(stringID:String, languageCode:String, stringValue:String):void
[static] 设置给定字符串 ID 和语言代码的新字符串值。
Locale
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件摘要定义方
 Inherited Flash Player 获得操作系统焦点并变为活动状态时调度。EventDispatcher
 Inherited Flash Player 失去操作系统焦点并变为非活动状态时调度。EventDispatcher
属性详细信息
autoReplace属性
autoReplace:Boolean  [read-write]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

确定是否在加载 XML 文件后自动替换字符串。 如果该属性设置为 true,则文本替换方法等效于“字符串”面板设置 "automatically at runtime"。 这意味着 Flash Player 将确定承载环境的默认语言,并自动使用该语言显示文本。 如果该属性设置为 false,则文本替换方法等效于“字符串”面板设置 "via ActionScript at runtime"。 这意味着由您负责加载相应的 XML 文件以显示文本。

此属性的默认值反映了您在“字符串”面板对话框中为“替换”字符串选择的设置:true 表示 "automatically at runtime"(默认设置),而 false 表示“运行时通过 ActionScript”。


实现
    public static function get autoReplace():Boolean
    public function set autoReplace(value:Boolean):void

示例
如何使用示例
下例使用 Locale.autoReplace 属性来用英语 XML 文件中的 IDS_GREETING 字符串的内容填充舞台上动态创建的 greeting_txt 文本字段。 在“字符串”面板中,单击“设置”按钮以打开“设置”对话框。 您可以使用“设置”对话框添加两种活动语言:英语 (en) 和法语 (fr),将“替换字符串”单选选项设置为 "via ActionScript at runtime",然后单击“确定”。 最后,在“字符串”面板中输入 IDS_GREETING 的字符串 ID,然后添加适合每种活动语言的文本。
     var greeting_txt:TextField = new TextField();
     greeting_txt.x = 40;
     greeting_txt.y = 40;
     greeting_txt.width = 200;
     greeting_txt.height = 20;
     greeting_txt.autoSize = TextFieldAutoSize.LEFT;
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.loadLanguageXML("en");
     
languageCodeArray属性 
languageCodeArray:Array  [read-only]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

包含语言代码的数组,这些代码对应着指定的语言或加载到 FLA 文件中的语言。 语言代码不是按字母顺序排序的。


实现
    public static function get languageCodeArray():Array

示例
如何使用示例
下面的示例将根据 ComboBox 组件的当前值加载语言 XML 文件。 将 ComboBox 组件拖到舞台上,并指定它的实例名称为 lang_cb。 使用“文本”工具,创建一个动态文本字段,并指定它的实例名称为 greeting_txt。 在“字符串”面板中,添加至少两种活动语言,将“替换字符串”单选选项设置为 "via ActionScript at runtime",然后单击“确定”。 之后,添加 IDS_GREETING 的字符串 ID,然后输入适合每种活动语言的文本。 最后,将以下 ActionScript 代码添加到主时间轴的第一帧中:
     Locale.setLoadCallback(localeListener);
     lang_cb.dataProvider = Locale.languageCodeArray.sort();
     lang_cb.addEventListener("change", langListener);
     
     function langListener(eventObj:Object):void {
      Locale.loadLanguageXML(eventObj.target.value);
     }
     function localeListener(success:Boolean):void {
      if (success) {
          greeting_txt.text = Locale.loadString("IDS_GREETING");
      } else {
          greeting_txt.text = "unable to load language XML file.";
      }
     }
     
stringIDArray属性 
stringIDArray:Array  [read-only]

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

包含 FLA 文件中所有字符串 ID 的数组。 字符串 ID 不是按字母顺序排序的。


实现
    public static function get stringIDArray():Array

示例
如何使用示例
下面的示例将跟踪当前加载的语言 XML 文件的 Locale.stringIDArray 属性。 单击“字符串”面板中的“设置”按钮以打开“设置”对话框。 然后添加两种活动语言:英语 (en) 和法语 (fr),将“替换字符串”单选选项设置为 "via ActionScript at runtime",然后单击“确定”。 在“字符串”面板中,添加 IDS_GREETING 的字符串 ID,然后添加适合每种活动语言的文本。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("fr");
     function localeCallback(success:Boolean) {
      trace(success);
      trace(Locale.stringIDArray); // IDS_GREETING
      trace(Locale.loadStringEx("IDS_GREETING", "fr")); // bonjour
     }
     
方法详细信息
addDelayedInstance()方法
public static function addDelayedInstance(instance:Object, stringID:String):*

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

将 {实例, 字符串 ID} 对添加到内部数组中,供以后使用。 它主要由 Flash 在字符串替换方法为 "automatically at runtime" 时使用。

参数

instance:Object — 要填充的文本字段的实例名称。
 
stringID:String — 语言字符串 ID。

返回
*

示例
如何使用示例
下例使用 autoReplace 属性和 addDelayedInstance() 方法来用英语 XML 语言文件中的 IDS_GREETING 字符串填充舞台上的文本字段。
     greeting_txt.autoSize = TextFieldAutoSize.LEFT;
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.loadLanguageXML("en");
     
addXMLPath()方法 
public static function addXMLPath(langCode:String, path:String):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

将 {语言代码和语言路径} 对添加到内部数组中,供以后使用。 它主要由 Flash 在字符串替换方法为 "automatically at runtime""via ActionScript at runtime" 时使用。

参数

langCode:String — 语言代码。
 
path:String — 要添加的 XML 路径。


示例
如何使用示例
下例使用 setInterval() 方法来检查是否已成功加载语言 XML 文件。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
checkXMLStatus()方法 
public static function checkXMLStatus():Boolean

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

如果加载了 XML 文件,则返回 true;否则返回 false

返回
Boolean — 如果加载了 XML 文件,则返回 true;否则返回 false

示例
如何使用示例
下面的示例将使用间隔,每隔 10 毫秒查看一次是否已成功加载语言文件。 加载 XML 文件后,用语言 XML 文件中的 IDS_GREETING 字符串填充舞台上的 greeting_txt 文本字段实例。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
getDefaultLang()方法 
public static function getDefaultLang():String

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

在“字符串”面板对话框中或通过调用 setDefaultLang() 方法设置的默认语言代码。

返回
String — 返回默认的语言代码。

另请参见


示例
如何使用示例
下例将创建一个名为 defLang 的变量,它用于保存 Flash 文档的初始默认语言。 单击“字符串”面板中的“设置”按钮以启动“设置”对话框。 然后添加两种活动语言:英语 (en) 和法语 (fr),将“替换字符串”单选选项设置为 "via ActionScript at runtime",然后单击“确定”。 在“字符串”面板中,添加 IDS_GREETING 的字符串 ID,然后添加适合每种活动语言的文本。
     var defLang:String = "fr";
     Locale.setDefaultLang(defLang);
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML(Locale.getDefaultLang());
     function localeCallback(success:Boolean) {
      if (success) {
          trace(Locale.stringIDArray); // IDS_GREETING
          trace(Locale.loadString("IDS_GREETING"));
      } else {
          trace("unable to load XML");
      }
     }
     
initialize()方法 
public static function initialize():void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

自动确定要使用的语言并自动加载 XML 语言文件。 它主要由 Flash 在字符串替换方法为 "automatically at runtime" 时使用。


示例
如何使用示例
此示例说明如何使用 initialize() 方法自动用用户的当前操作系统语言填充舞台上的 greeting_txt 文本字段。 不直接使用 initialize() 方法,而使用字符串替换方法 "automatically at runtime"
     trace(System.capabilities.language);
     Locale.autoReplace = true;
     Locale.addDelayedInstance(greeting_txt, "IDS_GREETING");
     Locale.initialize();
     
loadLanguageXML()方法 
public static function loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

加载指定的 XML 语言文件。

参数

xmlLanguageCode:String — 要加载的 XML 语言文件的语言代码。
 
customXmlCompleteCallback:Function (default = null) — 在加载 XML 语言文件时调用的自定义回调函数。


示例
如何使用示例
下面的示例使用 loadLanguageXML() 方法加载英语 (en) XML 语言文件。 加载该语言文件后,将调用 localeCallback() 方法,并用 XML 文件中的 IDS_GREETING 字符串的内容填充舞台上的 greeting_txt 文本字段。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
loadString()方法 
public static function loadString(id:String):String

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

使用当前语言返回与给定字符串 ID 关联的字符串值。

参数

id:String — 要加载的字符串标识 (ID) 号。

返回
String — 与给定字符串 ID 关联的字符串值,采用当前语言。

另请参见


示例
如何使用示例
下面的示例将使用间隔,每隔 10 毫秒查看一次是否已成功加载语言文件。 加载 XML 文件后,用 XML 语言文件的 IDS_GREETING 字符串填充舞台上的 greeting_txt 文本字段实例。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
loadStringEx()方法 
public static function loadStringEx(stringID:String, languageCode:String):String

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

返回与给定字符串 ID 和语言代码关联的字符串值。 为了避免加载意外的 XML 文件,如果 XML 文件尚未加载,则 loadStringEx() 不会加载 XML 语言文件。 如果您想加载某个 XML 语言文件,则应该确定在正确的时间来调用 loadLanguageXML() 方法。

参数

stringID:String — 要加载的字符串标识 (ID) 号。
 
languageCode:String — 语言代码。

返回
String — 与给定字符串 ID 相关联的字符串值,采用由 languageCode 参数指定的语言。

另请参见


示例
如何使用示例
下面的示例使用 loadStringEx() 方法跟踪当前加载的法语 XML 文件的 IDS_GREETING 字符串的值。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("fr");
     function localeCallback(success:Boolean) {
      trace(success);
      trace(Locale.stringIDArray); // IDS_GREETING
      trace(Locale.loadStringEx("IDS_GREETING", "fr")); // bonjour
     }
     
setDefaultLang()方法 
public static function setDefaultLang(langCode:String):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

设置默认语言代码。

参数

langCode:String — 一个表示语言代码的字符串。

另请参见


示例
如何使用示例
下例将创建一个名为 defLang 的变量,它用于保存 Flash 文档的初始默认语言。 单击“字符串”面板中的“设置”按钮以打开“设置”对话框。 然后添加两种活动语言:英语 (en) 和法语 (fr),将“替换字符串”单选选项设置为 "via ActionScript at runtime",然后单击“确定”。 在“字符串”面板中,添加 IDS_GREETING 的字符串 ID,然后添加适合每种活动语言的文本。
     var defLang:String = "fr";
     Locale.setDefaultLang(defLang);
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML(Locale.getDefaultLang());
     function localeCallback(success:Boolean) {
      if (success) {
          trace(Locale.stringIDArray); // IDS_GREETING
          trace(Locale.loadString("IDS_GREETING"));
      } else {
          trace("unable to load XML");
      }
     }
     
setLoadCallback()方法 
public static function setLoadCallback(loadCallback:Function):*

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

设置在加载 XML 文件后调用的回调函数。

参数

loadCallback:Function — 在加载 XML 语言文件时调用的函数。

返回
*

示例
如何使用示例
下面的示例将使用间隔,每隔 10 毫秒查看一次是否已成功加载语言文件。 加载 XML 文件后,用 XML 语言文件的 IDS_GREETING 字符串填充舞台上的 greeting_txt 文本字段实例。
     Locale.setLoadCallback(localeCallback);
     Locale.loadLanguageXML("en");
     // create interval to check if language XML file is loaded
     var locale_int:Number = setInterval(checkLocaleStatus, 10);
     function checkLocaleStatus():void {
      if (Locale.checkXMLStatus()) {
          clearInterval(locale_int);
          trace("clearing interval @ " + getTimer() + " ms");
      }
     }
     // callback function for Locale.setLoadCallback()
     function localeCallback(success:Boolean):void {
      greeting_txt.text = Locale.loadString("IDS_GREETING");
     }
     
setString()方法 
public static function setString(stringID:String, languageCode:String, stringValue:String):void

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

设置给定字符串 ID 和语言代码的新字符串值。

参数

stringID:String — 要设置的字符串标识 (ID) 号。
 
languageCode:String — 语言代码。
 
stringValue:String — 一个字符串值。


示例
如何使用示例
下面的示例使用 setString() 方法设置英语 (en) 和法语 (fr) 的 IDS_WELCOME 字符串。
     Locale.setString("IDS_WELCOME", "en", "hello");
     Locale.setString("IDS_WELCOME", "fr", "bonjour");
     trace(Locale.loadStringEx("IDS_WELCOME", "en")); // hello
     




 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/fl/lang/Locale.html