Попытка вставить флеш-файл ammap в html-файл - PullRequest
0 голосов
/ 09 мая 2011

У меня возникают некоторые проблемы при вставке моего ammap (http://www.ammap.com/) в мою веб-страницу. Я прочитал документацию, и это не помогает. Карта работает, если я использую файл .html в исходной папке, новсе пути относительны, и я пытаюсь сделать эту работу в проекте ASP.NET MVC с использованием Visual Studio. Объяснить проблему довольно сложно, так как я не знаю, в чем дело (нет javascript или flash отладчика).

Вот код, который встраивает 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

Я думаю, что ссылки на файлы и папки вызывают проблему, но я не могу знать наверняка. К вашему сведению, на моем сайте появляется флэш-объект, но отображается только «Загрузка 0%» и в конечном итоге происходит сбой.

Я знаю, что это очень специфическая проблема, но я решил попробовать вас, ребята, так как потратил много времени на исправление этой проблемы, а Google не очень помогает.

И я 'я попытался ввести: "http://localhost:portNumber/Content/AlcoholAndWar/WarStuff/map/War/timeline_data.xml" в мой браузер, и он не отображается, но виден через" Просмотр источника страницы ".

1 Ответ

0 голосов
/ 09 мая 2011

Сначала я советую использовать абсолютный путь, начинающийся с / или Html.Content("~/Content/..") (в случае MVC 3).

В случае вашего встраивания Flash, Flash использует относительный путь относительно URL-адреса, откуда вызывается swf. В приложении MVC у вас есть путь как /Area/Controller/Action. Встроенная вспышка теперь будет пытаться перейти к вашей относительной цели. Если вы укажете абсолютный URL, флеш будет идти от /.

Я бы попробовал

    <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 (возможно, исключение).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...