![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Пишу тут без особой надежды на помощь, тема Locale тут традиционно обходится молчанием, но попытка не пытка. Честно говоря, я ненавижу класс Locale, я постоянно натыкаюсь на грабли с этим классом, и в этот раз я наступил на очередные грабли. В общем, есть проект, разработанный во Flash CS5 и локализованный с помощью Locale. Весь интерфейс в нем отрисовывается программно, и программно подставляются строки из локали. В этом проекте стояла опция «заменять строки автоматически во время выполнения». И все работало нормально. Попробовал удаленную загрузку XML файлов таким образом:
Locale.addXMLPath("en", "http://mydomen.ru/Psylab_en.xml"); Locale.addXMLPath("ru","http://mydomen.ru/Psylab_ru.xml"); Error #2044: Необработанный ioError:. text=Error #2032: Ошибка потока. URL: file:///D|/.../Psylab_ru.xml at fl.lang::Locale$/loadXML() at fl.lang::Locale$/initialize() at core::Psylab() либо просто текстовые поля принимают null и я получаю чистую флешку. Попробовал скомпилироваться в CS5.5, я так уже лечил некоторые специфические глюки. Заново импортировал эксемельники. В этой версии IDE я получаю такую ошибку: ReferenceError: Error #1065: Переменная TCMText не определена Пересохранение в разных версиях не помогает. Смена в Locale на другие способы локализации тоже не помогает, ошибки так и держатся. В общем, что делать не знаю, идеи иссякли. |
|
|||||
|
Раньше грузил так:
т.е. локально, и все работало нормально. Назад с удаленной загрузки изменить на локальную уже не удается. |
|
|||||
|
откройте справку по Locale, там все подробно и с примерами.
__________________
местонахождение |
|
|||||
|
ну по двум строчкам кода, который Вы привели определить из-за чего, что-то там у Вас не работает не реально!
__________________
местонахождение |
|
|||||
|
Ну к локале в проекте не много кода относится:
в конструкторе класса документа прописано: Locale.addXMLPath("en", "lng/Psylab_en.xml"); Locale.addXMLPath("ru","lng/Psylab_ru.xml"); Locale.initialize (); Это пример создания кнопки, у которой в коструктор передается строка из локали. Выкладывать сюда весь код из проекта я не смогу, и потом, сомневаться в нем нет причин, все работало. |
|
|||||
|
в справке сказано, что метод:
Цитата:
Цитата:
справка: Цитата:
Цитата:
__________________
местонахождение |
|
|||||
|
Цитата:
Добавлено через 19 минут И да, если что-то не успевает догрузиться, используйте метод Locale.setLoadCallBack(callback) . |
|
|||||
|
Цитата:
1. Код работал. 2. В коде ничего не менялось кроме пути к файлам, и настроек панели Строки. 3. Код перестал работать. => проблема в пути к файлам и настройках панели Строки. Не можете это понять, зачем тогда тут пишите? Добавлю, что проблема может быть еще в том, что я что то не понимаю в том как работает Locale, или в баге самой Locale. Поэтому я тут тему и открыл. Теперь следующее: В справке про класс Locale написано так "Свойства и методы этого класса можно использовать, если требуется заменить идентификаторы строк «с помощью ActionScript при исполнении»." У меня возникло подозрение, что возможно опции "Автоматически во время выполнения" и "Вручную в соответствии с языком рабочей области" вообще предназначены только для работы в самой среде Flash а не с такой функцией: Но информации подтверждающей мои подозрения я не нашел, вообще по Locale мало примеров. И, напоследок, насчет этой строки: У меня стояла опция "Автоматически во время выполнения", она грузит язык разово и эта строка не нужна (и у меня работало без нее). Возможно, и то, что я в конструкторе написал не нужно, но я не проверял (хотя нет - нужно, путь к xml точно брался из функции addXMLPath ()). А эта строка нужна, для смены языка по событию (например, меняем язык по выбору его из комбобокса). Я так делал и я действительно использовал такую строку. Но это отдельная история. Добавлено через 5 минут Вот это мысль хорошая, если получится снова грузить эксемельники через http можно будет попробовать, хотя для этого в коде кое что переделать придется. Последний раз редактировалось PainKiller; 17.12.2011 в 02:19. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|