#xml #flash #swfobject
#xml #flash #swfobject
Вопрос:
Я отображаю некоторое содержимое flash на довольно стандартной странице. Это работает очень хорошо, когда flash, xml-файл и html-страница находятся вместе в одном каталоге.
Смотрите рабочий пример: http://www.rouviere.com/flipbook /
Однако я хочу отобразить это же содержимое на другой странице, которая находится глубже внутри сайта, но за пределами каталога, в котором хранятся файлы .swf и .xml, а также ресурсы.
Вот страница, на которой я хотел бы, чтобы содержимое отображалось должным образом: http://www.rouviere.com/writing/books
Вот параметры, которые я установил:
<script type="text/javascript" src="../../flipbook/swfobject.js" charset="utf-8"></script>
<script type="text/javascript" src="../../flipbook/swfaddress.js" charset="utf-8"></script>
<script type="text/javascript">
var flashvars = {
xmlPath: '../../flipbook/setup.xml',
preloaderMessage: 'LOADING XML',
title: 'Books | Rouviere Media'
};
var params = {};
var attributes = {id:'flipbook', name:'flipbook'};
params.scale = "noscale";
params.salign = "tl";
params.bgcolor = "0x000000";
params.allowfullscreen = "true";
params.allowScriptAccess = "always";
swfobject.embedSWF("../../flipbook/preview.swf", "myAlternativeContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
</script>
Файлы js загружаются правильно, а содержимое flash — нет, поэтому мне не помешала бы небольшая помощь в этом вопросе.
Спасибо.
Комментарии:
1. У вас есть общедоступный HTML-код? Я просто хочу просмотреть весь HTML-код, чтобы проверить, что с ним не так.
2. Вы можете увидеть исходный HTML-код для обоих URL-адресов.
Ответ №1:
Можете ли вы попробовать вставить код swfobject в
$(document).ready(function(){
//Put your code here
})
Я также заметил, что ссылки на /flipbook/setup.xml относится к / flipbook / вам нужно сделать его абсолютным, чтобы его можно было использовать на обеих страницах.
На данный момент flash остановился при попытке загрузки http://www.rouviere.com/writing/pages/tam_01.jpg поскольку приложение ожидает файл изображения, в котором этот URL возвращает веб-страницу.
Комментарии:
1. ysrb, мне нужно только, чтобы содержимое отображалось на rouviere.com/writing/books
2. @fmz да, похоже, что flash необходимо загрузить изображение, и оно не загружает изображение, потому что ссылка неверна.
3. итак, если страница / root/writing/books /, а xml-файл / root / flipbook /, каким будет правильный путь?
4. Путь к файлам xml, swf и js указан правильно. Тот, который вам нужно изменить, — это путь внутри setup.xml потому что он использует относительный путь. Вам не нужно изменять, например. вместо pages/tam_01.jpg вам нужно поместить /flipbook/pages/tam_01.jpg
5. ОК. Понял. Теперь оно корректно отображается в Safari, но не отображается в Firefox. Я предполагаю, что проблема с кэшем. Но спасибо за помощь!
Ответ №2:
Моим первым предположением было бы, что preview.swf не удается найти и загрузить XML-файл.
По умолчанию Flash Player разрешает пути относительно отображаемой HTML-страницы, а не относительно того, где находится swf-файл. Вероятно, вы можете заставить относительные пути работать, но я бы рекомендовал использовать полные пути из корня сервера, когда это возможно, например:
xmlPath: '/flipbook/setup.xml'
… вместо:
xmlPath: '../../flipbook/setup.xml'
Другое возможное решение — использовать параметр base, чтобы указать Flash Player, какой путь использовать в качестве базового, например:
xmlPath: 'setup.xml'
...
params.base = '/flipbook/'