Просмотр полной версии : Презентация на двух языках
Даже не знаю как правильно спросить, лучше опишу ситуацию.
Есть две презентации на разных языках, каждая из них лежит в отдельной своей папке (то что ниже пунктирной линии rus и eng).
http://cgeye.ru/!Monosnap/2014-11-18_12.08.46.png
То есть презентации работают сами по себе, по отдельности, все пути в презентациях относительные (пример "12_about/ru/12_bil.swf, 0")
В папке "rus" есть главный стартовый файл rus.swf и в папке "eng" есть свой стартовый файл eng.swf. По отдельности презентации прекрасно работают.
Но возникла задача, добавить стартовую страницу с выбором языка(см. рис. выше пунктирной линии). И тут загвоздка, если загрузить русскую или английскую версию таким способом
on (release) {
loadMovieNum("rus/rus.swf", 0);
}
то все страницы лежащие в подпапках "data files" становятся недоступными.
Вот и вопрос, можно ли каким то способом создать эту стартовую страницу не перписывая все пути в презентации?
Или можно ли как то изменить относительный путь проекта после его запуска?
1. Сделайте стартовую на обычном HTML с текстом и двумя кнопками.
Тогда запуск нужной СВФ-ки произведите как обращение к обычному URL-у
2. Сделайте обычную флэшку, с 2мя кнопками, но не ГРУЗИТЕ презентацию внутри неё, а обращайтесь к ней также по УРЛ-у.
BTN.onRelease = function(){
getURL("rus\\rus.swf","_blank")
}
Правда при этом презентация откроется в браузере. Хотя какая разница?
dark256 презентация полноэкранная, запускается через *.exe, заказчик точно не захочет браузерную версию.
Может есть какие нибудь сторонние способы изменять относительный путь после запуска приложения?
Не видя кода, что-то со всей определеностью сказать крайне сложно........
С точки зрения банальной эрудиции, могу лишь высказать предположение, (и надежду) что презентация тащит в себя файлы через MovieClipLoader().
В этом случае можно попробовать переопределить его метод loadClip() с тем, чтобы он модифицировал путь зарузки в указанном направлении....
Правда тут я в ООП шарю крайне мало, и код привести не могу...
Для загрузки роликов в презентации везде используется метод loadMovieNum, вот пример:
on (release) {
loadMovieNum("12_bibleyskie/ru/12_bil.swf", 0);
}
Если флеш позволяет изменять методы, то думаю метод loadMovieNum() тоже можно переопределить, но в этом я тоже не силен (
Кстати покопался в поиске нашел некий атрибут base, насколько понял в этой переменной как раз храниться относительный путь. Но в примерах значение этого атрибута задается в файлах html. Интересно можно ли как то это сделать из самого Flash?
Пройдитесь по коду презентации и сделайте SearchAndReplace для
" loadMovieNum(" "
на
" loadMovieNum(" rus/ "
Как-то более ничего внятного в голову не приходит.
dark256 спасибо что помогаете! да долго придется менять ссылки, там около 3 000 файлов ...
ЧТО???? У презентации не ОДИН управляющий файл, который все в себя грузит и показывает???
А 3000 СВФ-ок с подгрузками?????
Как понять одни управляющий файл который все в себя грузит?
В презентации сть стартовый файл, который при нажатии кнопок загружает в себя свфки(разделы, картинки итд) и выгружает ненужные или замещает.
Ну вот в нем и переписывать пути, а не во всех прочих СВФ
Ну вот в нем и переписывать пути, а не во всех прочих СВФ
не все так просто, в подгружаемых роликах-разделах много кнопок, в каждом разделе есть подразделы, в подразделах, много картинок которые подгружаются при клике
Если флеш позволяет изменять методы, то думаю метод loadMovieNum() тоже можно переопределить,
многие методы можно переопределить, но loadMovieNum это внутренняя функция плеера, до не не добраться
Кстати покопался в поиске нашел некий атрибут base, насколько понял в этой переменной как раз храниться относительный путь. Но в примерах значение этого атрибута задается в файлах html. Интересно можно ли как то это сделать из самого Flash?
из самой флешки нельзя, но можно 'попросить' (FSCommand) контейнер, что бы тот изменил
т.е. на кнопке загрузки языковой версии кроме getURL("rus\\rus.swf","_blank") будет еще, например
FSCommand("base","rus\\");
по которой контейнер должен будет поменять параметр Base флеш-компонента, раз уж у вас все равно exe-шник..
в аттаче вариант как это примерно можно обустроить на C#
результат в папке bin
main.swf грзит тестовые флешки из /ru и /en, котрые грузят картинку (естетвенно из стартовой директории)
а она же, завернутая в exe-шник(flashViewer.exe), который меняет Base по FSCommand, грузит уже из 'своих' папок
silin - супер, спасибо! очень интересный подход! А при помощи какой программы заворачивали main.swf в flashViewer.exe?
Я немного знаю C# но не представляю как такое можно сделать.
>> при помощи какой программы
да с помощью любой, которая позволит скомпилить, думаю можно
в моем примере проект из-под под Visual C# 2008 express edition
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.