Показать сообщение отдельно
Старый 22.12.2010, 14:48
P_A вне форума Посмотреть профиль Отправить личное сообщение для P_A Найти все сообщения от P_A
  № 9  
Ответить с цитированием
P_A

Регистрация: Dec 2010
Сообщений: 9
уверен, что есть и другие способы, но я как-то по привычке уже использую свой старый способ:

Создаем следующий класс

Код AS3:
package /* имя пакета */
{
	public class LANGUAGE
	{
		public static var words:Object = {};
	}
}
Создаем класс для загрузки языкового пакета

Код AS3:
package /*имя пакета*/
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLVariables;
 
	public class LoadLang extends Sprite
	{
		public static var LANGLOADED:String="Language File Loaded";
 
		private var LANG:String;
		public function LoadLang(lang:String)
		{
			LANG=lang;
			var loader:URLLoader = new URLLoader(new URLRequest("/*папка с языковыми пакетами*//"+lang+".html"));
			loader.addEventListener(Event.COMPLETE,completeHandler);
			LANGUAGE.words.LNAME=lang;
 
		}
		private function completeHandler(event:Event):void 
		{ 
			var loader2:URLLoader = URLLoader(event.target); 
 
			var newString:RegExp = /\r\n/g; 
			loader2.data=loader2.data.replace(newString, "&");
 
			LANGUAGE.words = new URLVariables(loader2.data);
			LANGUAGE.words.LNAME=LANG;
 
			dispatchEvent(new Event(LoadLang.LANGLOADED));	
		}
 
	}
}
Пример языкового пакета en.html
Код:
MIN=Min
MAX=Max
SOUNDSETTINGS=Sound Settings
MUTEALL=Mute All
BGMUSIC=Background Music
EFFECTS=Effects
GAMESETTINGS=Game Settings
PLAYWITHANIM=Play with Animation
CLOSE=Close
WAR=Attention, in case of unfinished round, all current stakes will be lost.
DOYOUREALY=Do you really want to quit?
YES=Yes
NO=No
NOTENOUGHTMONEY=Not enought money!
использование внутри главного класса
Код AS3:
var l:LoadLang;
l=new LoadLang("en");
 
l.addEventListener(LoadLang.LANGLOADED,Init);
язык прогружаем в конструкторе, а все остальное делаем уже в функции Init

Теперь из любого класса мы можем получить строку, содержащую текст на выбранном языке в
Код AS3:
LANGUAGE.words.ИМЯ_ПЕРЕМЕННОЙ_В_ЯЗЫКОВОМ_ПАКЕТЕ