#flash #visual-studio-2010 #map
#flash #visual-studio-2010 #словарь
Вопрос:
У меня возникли некоторые проблемы с вставкой моего ammap (http://www.ammap.com /) на мою веб-страницу. Я прочитал документацию, и это не помогает. Карта работает, если я использую файл .html в моей исходной папке, но все пути относительны, и я пытаюсь заставить это работать в ASP.NET Проект MVC с использованием Visual Studio. Довольно сложно объяснить проблему, поскольку я не знаю, что не так (нет javascript или flash debugger).
Вот код, который внедряет ammap:
<script type="text/javascript" src="../../Content/AlcoholAndWar/WarStuff/ammap/swfobject.js"></script>
<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
</div>
<script type="text/javascript">
var so = new SWFObject("../../Content/AlcoholAndWar/WarStuff/ammap/amtimeline.swf", "amtimeline", "800", "600", "8", "#dddddd");
so.addVariable("path", "../../Content/AlcoholAndWar/WarStuff/ammap/"));
//The data file links to the settings file.
//so.addVariable("settings_file", encodeURIComponent("../../Content/AlcoholAndWar/War stuff/map/War/ammap_settings.xml"));
so.addVariable("data_file", "../../Content/AlcoholAndWar/WarStuff/map/War/timeline_data.xml");
so.write("flashcontent");
</script>
Чтобы лучше понять проблему, вот структура папок в Visual Studio (нерелевантные файлы / папки пропущены) :
-Content
-AlcoholAndWar
-Alcohol
-Warstuff
-ammap
swfobject.js
-icons
-maps
-map
-War
timeline_data.xml
ammaps_settings.xml
Я думаю, что ссылки на файлы и папку вызывают проблему, но я не могу знать наверняка. К вашему сведению, flash-объект действительно появляется на моем сайте, но отображает только «Загрузка 0%» и в конечном итоге завершается сбоем.
Я знаю, что это очень специфическая проблема, но я решил, что попробую спросить вас, ребята, поскольку я потратил много времени на исправление этого, а Google не очень помогает.
И я попытался ввести: «http://localhost:portNumber/Content/AlcoholAndWar/WarStuff/map/War/timeline_data.xml «в моем браузере, и он не отображается, но он виден через «Просмотр исходного кода страницы».
Ответ №1:
Сначала я советую использовать абсолютный путь, начинающийся с /
или use Html.Content("~/Content/..")
(в случае MVC 3).
В случае вашего встраивания во Flash Flash использует относительный путь относительно URL, с которого вызывается swf-файл. В приложении MVC у вас есть путь, подобный /Area/Controller/Action
. Теперь встроенный flash попытается перейти оттуда к вашей относительной цели. Если вы укажете абсолютный URL, flash будет отправляться с /
.
Я бы попробовал
<script type="text/javascript" src="/Content/AlcoholAndWar/WarStuff/ammap/swfobject.js"></script>
<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
</div>
<script type="text/javascript">
var so = new SWFObject("/Content/AlcoholAndWar/WarStuff/ammap/amtimeline.swf", "amtimeline", "800", "600", "8", "#dddddd");
so.addVariable("path", "/Content/AlcoholAndWar/WarStuff/ammap/"));
//The data file links to the settings file.
//so.addVariable("settings_file", encodeURIComponent("/Content/AlcoholAndWar/War stuff/map/War/ammap_settings.xml"));
so.addVariable("data_file", "/Content/AlcoholAndWar/WarStuff/map/War/timeline_data.xml");
so.write("flashcontent");
</script>
Последний совет. Используйте Firebug и посмотрите на сетевую панель. Там вы увидите, какой элемент не был загружен правильно, и на вкладке Ответа запроса вы можете увидеть ответ от IIS (возможно, исключение).
Комментарии:
1. Спасибо за совет. Пути не сработали, но Firebug показал мне, какие файлы не загружались, и, используя эту информацию, я смог решить проблему.