Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Презентация на двух языках (http://www.flasher.ru/forum/showthread.php?t=209525)

xcube 18.11.2014 13:33

Презентация на двух языках
 
Даже не знаю как правильно спросить, лучше опишу ситуацию.

Есть две презентации на разных языках, каждая из них лежит в отдельной своей папке (то что ниже пунктирной линии 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. По отдельности презентации прекрасно работают.

Но возникла задача, добавить стартовую страницу с выбором языка(см. рис. выше пунктирной линии). И тут загвоздка, если загрузить русскую или английскую версию таким способом
Код AS1/AS2:

on (release) {
        loadMovieNum("rus/rus.swf", 0);
}

то все страницы лежащие в подпапках "data files" становятся недоступными.
Вот и вопрос, можно ли каким то способом создать эту стартовую страницу не перписывая все пути в презентации?
Или можно ли как то изменить относительный путь проекта после его запуска?

dark256 18.11.2014 14:02

1. Сделайте стартовую на обычном HTML с текстом и двумя кнопками.
Тогда запуск нужной СВФ-ки произведите как обращение к обычному URL-у

2. Сделайте обычную флэшку, с 2мя кнопками, но не ГРУЗИТЕ презентацию внутри неё, а обращайтесь к ней также по УРЛ-у.

Код AS1/AS2:

BTN.onRelease = function(){
        getURL("rus\\rus.swf","_blank")
}

Правда при этом презентация откроется в браузере. Хотя какая разница?

xcube 18.11.2014 14:11

dark256 презентация полноэкранная, запускается через *.exe, заказчик точно не захочет браузерную версию.
Может есть какие нибудь сторонние способы изменять относительный путь после запуска приложения?

dark256 18.11.2014 14:21

Не видя кода, что-то со всей определеностью сказать крайне сложно........
С точки зрения банальной эрудиции, могу лишь высказать предположение, (и надежду) что презентация тащит в себя файлы через MovieClipLoader().
В этом случае можно попробовать переопределить его метод loadClip() с тем, чтобы он модифицировал путь зарузки в указанном направлении....

Правда тут я в ООП шарю крайне мало, и код привести не могу...

xcube 18.11.2014 14:34

Для загрузки роликов в презентации везде используется метод loadMovieNum, вот пример:
Код AS1/AS2:

on (release) {
        loadMovieNum("12_bibleyskie/ru/12_bil.swf", 0);
}

Если флеш позволяет изменять методы, то думаю метод loadMovieNum() тоже можно переопределить, но в этом я тоже не силен (

Кстати покопался в поиске нашел некий атрибут base, насколько понял в этой переменной как раз храниться относительный путь. Но в примерах значение этого атрибута задается в файлах html. Интересно можно ли как то это сделать из самого Flash?

dark256 18.11.2014 15:57

Пройдитесь по коду презентации и сделайте SearchAndReplace для
" loadMovieNum(" "
на
" loadMovieNum(" rus/ "

Как-то более ничего внятного в голову не приходит.

xcube 18.11.2014 17:36

dark256 спасибо что помогаете! да долго придется менять ссылки, там около 3 000 файлов ...

dark256 18.11.2014 21:36

ЧТО???? У презентации не ОДИН управляющий файл, который все в себя грузит и показывает???
А 3000 СВФ-ок с подгрузками?????

xcube 19.11.2014 00:29

Как понять одни управляющий файл который все в себя грузит?
В презентации сть стартовый файл, который при нажатии кнопок загружает в себя свфки(разделы, картинки итд) и выгружает ненужные или замещает.

dark256 19.11.2014 12:19

Ну вот в нем и переписывать пути, а не во всех прочих СВФ

xcube 19.11.2014 23:38

Цитата:

Сообщение от dark256 (Сообщение 1175142)
Ну вот в нем и переписывать пути, а не во всех прочих СВФ

не все так просто, в подгружаемых роликах-разделах много кнопок, в каждом разделе есть подразделы, в подразделах, много картинок которые подгружаются при клике

silin 20.11.2014 22:43

Цитата:

Сообщение от xcube (Сообщение 1175117)
Если флеш позволяет изменять методы, то думаю метод loadMovieNum() тоже можно переопределить,

многие методы можно переопределить, но loadMovieNum это внутренняя функция плеера, до не не добраться

Цитата:

Сообщение от xcube (Сообщение 1175117)
Кстати покопался в поиске нашел некий атрибут base, насколько понял в этой переменной как раз храниться относительный путь. Но в примерах значение этого атрибута задается в файлах html. Интересно можно ли как то это сделать из самого Flash?

из самой флешки нельзя, но можно 'попросить' (FSCommand) контейнер, что бы тот изменил
т.е. на кнопке загрузки языковой версии кроме getURL("rus\\rus.swf","_blank") будет еще, например
Код AS1/AS2:

FSCommand("base","rus\\");

по которой контейнер должен будет поменять параметр Base флеш-компонента, раз уж у вас все равно exe-шник..

xcube 20.11.2014 23:28

silin, большое спасибо!

silin 20.11.2014 23:36

Вложений: 1
в аттаче вариант как это примерно можно обустроить на C#
результат в папке bin
main.swf грзит тестовые флешки из /ru и /en, котрые грузят картинку (естетвенно из стартовой директории)
а она же, завернутая в exe-шник(flashViewer.exe), который меняет Base по FSCommand, грузит уже из 'своих' папок

xcube 24.11.2014 13:37

silin - супер, спасибо! очень интересный подход! А при помощи какой программы заворачивали main.swf в flashViewer.exe?
Я немного знаю C# но не представляю как такое можно сделать.

silin 24.11.2014 14:40

>> при помощи какой программы
да с помощью любой, которая позволит скомпилить, думаю можно
в моем примере проект из-под под Visual C# 2008 express edition


Часовой пояс GMT +4, время: 15:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.