
07.11.2005, 12:46
|
|
Регистрация: Oct 2005
Сообщений: 6
|
Спасибо всем за подробные и многочисленные ответы :-D. Тема закрыта.
В общем, проблема решилась путем написания своего класса, аналогичного по функциональности с системным классом Locale. И там самому приделать исправление путей, хранения путей для нескольких FLA, передача локали снаружи и т.п. Галку "Insert ActionScript for automatic language detection" выключил, и сам добавляю ранее автосгенерированный текст в начала каждого файла *.AS
Пришлось по пути решить несколько возникших проблем, типа:
- внутри загрузчика XML onLoad область видимости другая (т.е. внутри этого метода класса не видно собственно других методов этого же класса) - пршлось применять конструкцию типа:
var parent = this;
xmlDoc.onLoad = function(success:Boolean) {
parent.onXMLLoad(success); // parse the XML
callback.call(null, success);
}
- хотя сделали все элементы класса MyLocale нестатическими, член класса private var xmlMap:Object = new Object(); все равно был "един" для всех экземпляров этого класса (т.е. добавление в него объектов из разных инстансов пополняло его во всех других инстансах)... Сделали поэтому в нем массив еще большей размерности (еще одна размерность - имя локализуемой FLA). Теперь метод addXMLPath стал таким:
function addXMLPath(langCode:String, path:String):Void {
if(xmlMap[flaName] == undefined) {
xmlMap[flaName] = new Object();
}
xmlMap[flaName][langCode] = path;
}
Вот такие пироги :-)
Макромедия маст дай за такую кривую локализацию ;-)
|