Попытка вставить флэш-файл ammap в HTML-файл

#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 показал мне, какие файлы не загружались, и, используя эту информацию, я смог решить проблему.