Flash CS3 ドキュメンテーション |
|||
| ActionScript 2.0 の学習 > テキストとストリングの操作 > ストリングおよび String クラスについて > Locale クラスの使用 | |||
Locale クラス (mx.lang.Locale) クラスを使用すると、Flash アプリケーションで実行時に表示される多言語テキストを制御できます。[ストリング] パネルを使用することで、ダイナミックテキストフィールドにストリングリテラルではなくストリング ID を使用することができ、これによって言語別の XML ファイルからロードされたテキストを表示する SWF ファイルを作成することが可能となります。XLIFF (XML Localization Interchange File Format) ファイルに含まれている言語別の文字列を表示するには、次のような方法があります。
実行時に自動で Flash Player によってストリング ID が、language (capabilities.language プロパティ) から返されるデフォルトのシステム言語と一致する XML ファイル内のストリングに置き換えられます。
ステージ言語を使用して手動で コンパイル時にストリング ID がストリングに置き換えられるので、Flash Player では変更できません。
実行時に ActionScript を使用して ストリング ID の置き換えを ActionScript を使用して実行時に制御します。このオプションでは、ストリング ID を置き換えるタイミングと言語を両方とも制御できます。
アプリケーションが Flash Player で再生される際にアプリケーションを ActionScript で制御してストリング ID を置き換える場合は、Locale クラスのプロパティとメソッドを使用できます。Locale の使用法の例については、次の手順を参照してください。
Flash により、入力した greeting というストリングが IDS_GREETING へと変換されます。
これらのストリングは、lang_cb コンボボックスを使ってステージ上の言語を変更するときに使用します。
import mx.lang.Locale;
Locale.setLoadCallback(localeListener);
lang_cb.dataProvider = Locale.languageCodeArray.sort();
lang_cb.addEventListener("change", langListener);
greeting_txt.autoSize = "left";
Locale.loadLanguageXML(lang_cb.value);
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.";
}
}
上記の ActionScript は 2 つのセクションに分けることができます。コードの最初のセクションでは、Locale クラスを読み込み、言語別の XML ファイルの読み込みが完了したときに呼び出されるコールバックリスナーを指定しています。次に、使用可能な言語のソート済みの配列が lang_cb コンボボックスに設定されます。lang_cb の値が変更されると、Flash のイベントディスパッチャーによって、言語別の XML ファイルをロードする langListener() 関数がトリガされます。コードの 2 番目のセクションでは、langListener() および localeListener() という 2 つの関数が定義されています。最初の関数、langListener() は、lang_cb コンボボックスの値がユーザーによって変更されたときに呼び出されます。2 番目の関数、localeListener() は、言語別の XML ファイルの読み込みが完了したときに呼び出されます。この関数では読み込みに成功したかどうかがチェックされ、成功していれば、greeting_txt インスタンスの text プロパティを選択された言語の挨拶の文に設定します。
|
ヒント |
|
使用する XML ファイルでは、XLIFF (XML Localization Interchange File Format) を使用する必要があります。 |
|
注意 |
|
Locale クラスは、『ActionScript 2.0 リファレンスガイド』で説明されている他のクラスとは異なり、Flash Player には含まれていません。このクラスは Flash Authoring クラスパスにインストールされているため、自動的に SWF ファイルにコンパイルされます。Locale クラスは SWF ファイルにコンパイルする必要があるため、このクラスを使うことによって SWF ファイルのサイズはわずかに大きくなります。 |
詳細については、『ActionScript 2.0 リファレンスガイド』の「Locale (mx.lang.Locale)」を参照してください。
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000944.html