Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
fl.lang 

Locale  - AS3 Flash

Пакетfl.lang
Классpublic class Locale
НаследованиеLocale Inheritance EventDispatcher Inheritance Object

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Класс fl.lang.Locale позволяет управлять отображением многоязыкового текста в SWF-файле. Панель «Строки» позволяет использовать в программе Flash идентификаторы строк вместо строковых литералов в динамических текстовых полях. Благодаря этому, можно создать SWF-файл, показывающий текст на том или ином языке, который загружается из XML-файла. XML-файл должен иметь формат XLIFF (расширяемый платформенно-независимый стандарт для обмена данными локализации). Существует три способа показа строк на определенном языке, содержащихся в XLIFF-файлах:
  • "automatically at runtime" — Flash Player заменяет идентификаторы строк строками из XML-файла, совпадающими с кодом системного языка по умолчанию, который возвращается flash.system.capabilities.language;
  • "manually using stage language" — идентификаторы строк заменяются строками на стадии компиляции, которые нельзя изменить с помощью Flash Player;
  • "via ActionScript at runtime" — замена идентификаторов строк контролируется с помощью ActionScript при исполнении. Этот вариант дает возможность управлять как временными, так и языковыми параметрами при замене идентификаторов строк.

Свойства и методы этого класса можно использовать, если требуется заменить идентификаторы строк «с помощью ActionScript при исполнении».

Все доступные свойства и методы являются статическими. Это означает, что они могут быть доступны благодаря классу fl.lang.Locale как таковому, а не экземпляру этого класса.

Примечание. Подкаталоги класса Locale определяются путем в средстве разработки Flash и автоматически компилируются в SWF-файлы пользователя. Применение класса Locale немного увеличивает размер SWF-файла, поскольку этот класс компилируется в него.

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
  autoReplace : Boolean
[статические] Определяет, должны ли строки заменяться автоматически после загрузки XML-файла.
Locale
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  languageCodeArray : Array
[статические] [только для чтения] Массив, содержащий коды для языков, указанных или загруженных в FLA-файл.
Locale
  stringIDArray : Array
[статические] [только для чтения] Массив, содержащий все идентификаторы строк в FLA-файле.
Locale
Общедоступные методы
 МетодОпределено
  
addDelayedInstance(instance:Object, stringID:String):*
[статические] Добавляет пару {экземпляр, идентификатор строки} во внутренний массив для дальнейшего использования.
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
[статические] Добавляет пару {languageCode и languagePath} во внутренний массив для дальнейшего использования.
Locale
  
[статические] Возвращает значение true, если загружен XML-файл, в противном случае возвращает значение false.
Locale
 Inherited
Посылает событие в поток событий.
EventDispatcher
  
[статические] Код языка по умолчанию, задаваемый в диалоговом окне панели «Строки» или путем вызова метода setDefaultLang().
Locale
 Inherited
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
[статические] Автоматически определяет, какой язык нужно использовать, и загружает XML-файл языка.
Locale
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
loadLanguageXML(xmlLanguageCode:String, customXmlCompleteCallback:Function = null):void
[статические] Загружает XML-файл для указанного языка.
Locale
  
[статические] Возвращает строковое значение, связанное с заданным идентификатором строки, на текущем языке.
Locale
  
loadStringEx(stringID:String, languageCode:String):String
[статические] Возвращает строковое значение, связанное с заданным идентификатором строки и кодом языка.
Locale
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
  
[статические] Задает код языка по умолчанию.
Locale
  
setLoadCallback(loadCallback:Function):*
[статические] Задает функцию обратного вызова, которая вызывается после загрузки XML-файла.
Locale
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
  
setString(stringID:String, languageCode:String, stringValue:String):void
[статические] Задает новое строковое значение заданного идентификатора строки и кода языка.
Locale
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным.EventDispatcher
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным.EventDispatcher
Сведения о свойстве

autoReplace

свойство
autoReplace:Boolean

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Определяет, должны ли строки заменяться автоматически после загрузки XML-файла. Если выбрано значение true, метод замены текста эквивалентен параметру панели «Строки» "automatically at runtime". Это значит, что Flash Player определит язык по умолчанию для среды узла и автоматически покажет текст на этом языке. Если выбрано значение false, метод замены текста эквивалентен параметру панели «Строки» "via ActionScript at runtime". Это значит, что соответствующий XML-файл, который необходим для показа текста, загружается самим пользователем.

Значение по умолчанию для этого свойства отражает параметр, выбранный в разделе «Заменить строки» диалогового окна панели «Строки»: значение true означает выбор варианта «automatically at runtime» (по умолчанию), а значение false — выбор варианта «via ActionScript at runtime».



Реализация
    public static function get autoReplace():Boolean
    public static function set autoReplace(value:Boolean):void

Пример  ( Использование этого примера )
В следующем примере свойство Locale.autoReplace используется для заполнения динамически созданного текстового поля greeting_txt в рабочей области с содержимым строки IDS_GREETING из XML-файла для английского языка. На панели «Строки» нажмите кнопку «Параметры», чтобы открыть одноименное диалоговое окно. Здесь можно добавить два активных языка: английский (en) и французский (fr), задать с помощью переключателя вариант замены строк "via ActionScript at runtime" и нажать кнопку OK. И, наконец, необходимо ввести идентификатор строки IDS_GREETING на панели «Строки» и добавить текст для каждого активного языка.
     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  [только для чтения]

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Массив, содержащий коды для языков, указанных или загруженных в FLA-файл. Коды языка не сортируются в алфавитном порядке.



Реализация
    public static function get languageCodeArray():Array

Пример  ( Использование этого примера )
В следующем примере загружается языковой XML-файл, который основан на текущем значении компонента ComboBox. Компонент ComboBox необходимо перетащить в рабочую область, а затем присвоить этому экземпляру имя lang_cb. С помощью инструмента «Текст» создается динамическое текстовое поле, и этому экземпляру присваивается имя greeting_txt. На панели «Строки» необходимо добавить, по меньшей мере, два активных языка, выбрать с помощью переключателя вариант замены строк "via ActionScript at runtime" и нажать OK. Затем следует добавить идентификатор строки IDS_GREETING и ввести текст для каждого активного языка. В конце концов, в Кадр 1 основной временной шкалы добавляется следующий код 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  [только для чтения]

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Массив, содержащий все идентификаторы строк в FLA-файле. Идентификаторы строк не сортируются в алфавитном порядке.



Реализация
    public static function get stringIDArray():Array

Пример  ( Использование этого примера )
В следующем примере свойство Locale.stringIDArray отслеживается для загруженного в данный момент языкового XML-файла. Нажмите кнопку «Параметры» на панели «Строки», чтобы открыть одноименное диалоговое окно. Затем необходимо добавить два активных языка: английский (en) и французский (fr), выбрать с помощью переключателя замены строк настройку "via ActionScript at runtime" и нажать кнопку OK. В панели строк вы добавляете идентификатор 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
     }
     
Сведения о методе

addDelayedInstance

()метод
public static function addDelayedInstance(instance:Object, stringID:String):*

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Добавляет пару {экземпляр, идентификатор строки} во внутренний массив для дальнейшего использования. Как правило, программа Flash задействует этот метод, когда для замены строк выбран метод "automatically at runtime".

Параметры

instance:Object — Имя экземпляра наполняемого текстового поля.
 
stringID:String — Идентификатор языковой строки.

Возвращает
*

Пример  ( Использование этого примера )
В следующем примере показано, как использовать свойство autoReplace и метод addDelayedInstance() для наполнения текстового поля на монтажном столе строкой IDS_GREETING из XML-файла для английского языка.
     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
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Добавляет пару {languageCode и languagePath} во внутренний массив для дальнейшего использования. В основном, этот вариант используется проигрывателем Flash Player, когда в качестве метода замены строк выбран метод "automatically at runtime" или "via ActionScript at runtime". Этот метод позволяет загружать языковые файлы XML из пользовательского местоположения, а не из местоположения, заданного по умолчанию в Flash Professional. По умолчанию Flash Professional создает файл XML для каждого языка в подпапке рабочего каталога, названной по имени FLA-файла

Параметры

langCode:String — Код языка.
 
path:String — Путь XML, который необходимо добавить.


Пример  ( Использование этого примера )
В следующем примере код сообщает проигрывателю Flash Player о том, что переводы на английский язык (en) находятся в файле locale/locale_en.xml, а переводы на французский язык (fr) — в файле locale/locale_fr.xml. Путь указывается относительно рабочего каталога (пример и описание предоставлены Крисом Инчем (Chris Inch) с сайта http://www.chrisinch.com).
     Locale.addXMLPath("en", "locale/locale_en.xml");
     Locale.addXMLPath("fr", "locale/locale_fr.xml");
     Locale.setLoadCallback(Delegate.create(this, languageLoaded));
     Locale.loadLanguageXML("en");
     
     private function languageLoaded(success:Boolean):Void {
        trace(Locale.loadString("IDS_HELLO");
     
     

checkXMLStatus

()метод 
public static function checkXMLStatus():Boolean

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Возвращает значение true, если загружен XML-файл; в противном случае возвращает значение false.

Возвращает
Boolean — Возвращает значение true, если загружен XML-файл; в противном случае возвращает значение false.

Пример  ( Использование этого примера )
В следующем примере используется интервал в 10 миллисекунд для проверки успешной загрузки языкового файла. После загрузки XML-файла экземпляр текстового поля greeting_txt в рабочей области заполняется строкой IDS_GREETING из языкового 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");
     }
     

getDefaultLang

()метод 
public static function getDefaultLang():String

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Код языка по умолчанию, задаваемый в диалоговом окне панели строк или путем вызова метода setDefaultLang().

Возвращает
String — Возвращает код языка по умолчанию.

Связанные элементы API


Пример  ( Использование этого примера )
В следующем примере показано, как создавать переменную с именем defLang, которая используется для хранения начального языка по умолчанию для документа Flash. Вы нажимаете на кнопку «Настройки» для запуска диалогового окна «Настройки». Затем добавляете два активных языка: английский (en) и французский (fr), устанавливаете отметку переключателя "via ActionScript at runtime", затем нажимаете OK. В панели строк вы добавляете идентификатор IDS_GREETING, затем добавляете текст для каждого из активных языков.
     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
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Автоматически определяет, какой язык нужно использовать, и загружает 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
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Загружает XML-файл для указанного языка.

Параметры

xmlLanguageCode:String — Языковой код для языкового XML-файла, который вам нужно загрузить.
 
customXmlCompleteCallback:Function (default = null) — Специальная функция обратного вызова, вызываемая при загрузке языкового XML-файла.


Пример  ( Использование этого примера )
В следующем примере показано использование метода loadLanguageXML() для загрузки XML-файла для английского языка. После завершения загрузки языкового файла вызывается метод localeCallback(), а текстовое поле greeting_txt в рабочей области заполняется содержимым строки IDS_GREETING из 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");
     }
     

loadString

()метод 
public static function loadString(id:String):String

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Возвращает строковое значение, связанное с заданным идентификатором строки, на текущем языке.

Параметры

id:String — Идентификационный номер загружаемой строки.

Возвращает
String — Строковое значение, связанное с заданным идентификатором строки, на текущем языке.

Связанные элементы API


Пример  ( Использование этого примера )
В следующем примере используется интервал в 10 миллисекунд для проверки успешной загрузки языкового файла. После загрузки XML-файла экземпляр текстового поля greeting_txt в рабочей области заполняется строкой IDS_GREETING из языкового 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");
     }
     

loadStringEx

()метод 
public static function loadStringEx(stringID:String, languageCode:String):String

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Возвращает строковое значение, связанное с заданным идентификатором строки и кодом языка. Чтобы предотвратить случайную загрузку XML-файлов, loadStringEx() не загружает языковые XML-файлы, если XML-файл уже загружен. Необходимо решить, в какое время следует вызывать метод loadLanguageXML(), если нужно загрузить языковой XML-файл.

Параметры

stringID:String — Идентификационный номер загружаемой строки.
 
languageCode:String — Код языка.

Возвращает
String — Строковое значение, ассоциируемое с заданным идентификатором строки в языке, заданным параметром languageCode.

Связанные элементы API


Пример  ( Использование этого примера )
В следующем примере показано, как использовать метод loadStringEx() для отслеживания значения строки IDS_GREETING для загруженного в данный момент XML-файла для французского языка.
     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
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Задает код языка по умолчанию.

Параметры

langCode:String — Строка, представляющая языковой код.

Связанные элементы API


Пример  ( Использование этого примера )
В следующем примере показано, как создавать переменную с именем defLang, которая используется для хранения начального языка по умолчанию для документа Flash. Вы нажимаете на кнопку «Настройки» для открытия диалогового окна «Настройки». Затем добавляете два активных языка: английский (en) и французский (fr), устанавливаете отметку переключателя "via ActionScript at runtime", затем нажимаете OK. В панели строк вы добавляете идентификатор IDS_GREETING, затем добавляете текст для каждого из активных языков.
     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
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Задает функцию обратного вызова, которая вызывается после загрузки XML-файла.

Параметры

loadCallback:Function — Функция, вызываемая по окончании загрузки XML-файла.

Возвращает
*

Пример  ( Использование этого примера )
В следующем примере используется интервал в 10 миллисекунд для проверки успешной загрузки языкового файла. После загрузки XML-файла экземпляр текстового поля greeting_txt в рабочей области заполняется строкой IDS_GREETING из языкового 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");
     }
     

setString

()метод 
public static function setString(stringID:String, languageCode:String, stringValue:String):void

Язык версии: ActionScript 3.0
Версия продукта: Flash CS3
Версии среды выполнения: Flash Player 9, AIR 1.0

Задает новое строковое значение заданного идентификатора строки и кода языка.

Параметры

stringID:String — Идентификационный номер задаваемой строки.
 
languageCode:String — Код языка.
 
stringValue:String — Значение строки.


Пример  ( Использование этого примера )
В следующем примере для задания строки IDS_WELCOME для обоих языков, английского (en) и французского (fr), используется метод setString().
     Locale.setString("IDS_WELCOME", "en", "hello");
     Locale.setString("IDS_WELCOME", "fr", "bonjour");
     trace(Locale.loadStringEx("IDS_WELCOME", "en")); // hello
     




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.