Flash с передачей параметра - файла xml
Материал из AOW
Содержание |
Суть проблемы
Довольно часто возникают задачи, связанные с написание флэш-контейнера, которому необходимо передать xml-файл с настройками, текстами, ссылками, путями и другими техническими нюансами, используемыми контейнером для выполнения его прямой задачи. в 100% из 100% случаев возникает одна и та же проблема: при попытке передать во флеш адрес файла xml с данными, флэшка не находит его. Исследования показали, что флэш-контейнер ищет файл относительно своей локальной директории или добавляет название xml-файла к пути страницы, которая в данный момент открыта, а должна искать относительно корневого каталога системы aow-sc3 (он, как правило, совпадает с корневым каталогом сайта http://site.com/, но не всегда http://site.com/aow-sc3/). Скорее всего, флешеры забывают ставить / (слэш, который означет что путь должен быть относительно корневого каталога сайта) перед путем получения xml-файла.
Решени проблемы
Класть xml и swf в корневик сайта - это не выход и так делать мы не будем. Поэтому вот просьба и инструкция к действию всем флэшерам, читающим эту статью, соответственно находящимся у нас в штате или на разовом подряде:
- swf файл будет лежать по адресу site.ru/main_res/swf/ или где-нибудь в другой папке внутри main_res. При этом, если мы возьмём, и перенесём движок на другое доменное имя, должен сохраниться работающий контейнер, поэтому искать ресурсы контейнер должен корректно
- xml файл может лежать где угодно в папке base (учитываем внутреннюю вложенность)
- наш движок мы менять не будем, поэтому будьте добры
Пример
Имеем сайт site.ru В шапке сайта висит меню на флэше, пункты которого ведут на или иные страницы. Названия пунктов и ссылки на страницы мы передаём во флэшку посредством xml-файла. В саму флэшку мы передаём путь к файлу. Допустим он лежит в site.ru/base/content/top_menu/settings.xml Так вот флэш должен уметь удачно подгрузить этот файл, на какой бы странице не находился пользователь: на главной, на вторичной, на странице с вложенностью 10 и так далее. Если мы хотим подгружать разные пункты меню для каждой странице, то мы создадим, к примеру, xml-файл по адресу site.ru/base/content/super_car/top_menu/settings.xml и передадим его во флэш на нужной нам странице через параметр.
- Параметр для передачи во flash '/base/content/super_car/top_menu/settings.xml' фактическое нахождение файла site.ru/base/content/super_car/top_menu/settings.xml
- Параметр для передачи во flash '/aow-sc3/base/content/super_car/top_menu/settings.xml' фактическое нахождение файла site.ru/aow-sc3/base/content/super_car/top_menu/settings.xml
Пути в XML
Все пути в xml файле строятся по тому же принципу.
- Параметр в xml файле '/base/content/super_car/img/1.jpg' фактическое нахождение файла изображения site.ru/base/content/super_car/img/1.jpg
- Параметр в xml файле '/aow-sc3/base/content/super_car/img/1.jpg' фактическое нахождение файла изображения site.ru/aow-sc3/base/content/super_car/img/1.jpg
Дополнения
Также просим обратить внимание на то, что при обращении к сайту www.site.ru и site.ru файл .xml может не грузится при разных обращениях к сайту. Проблема решается применением crossdomain.xml
Прошу быть внимательными, при разработке flash-контейнеров

