Ответы:
Лучший подход для встраивания SWF- файла в HTML-страницу - это использование SWFObject .
Это простая библиотека JavaScript с открытым исходным кодом, которая является простым в использовании и стандартизированным методом для вставки Flash-содержимого.
Он также предлагает определение версии Flash Player. Если пользователю не требуется версия Flash или JavaScript отключен, он увидит альтернативный контент. Вы также можете использовать эту библиотеку для запуска обновления Flash Player. После обновления пользователь будет перенаправлен обратно на страницу.
Пример из документации:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>SWFObject dynamic embed - step 3</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
</script>
</head>
<body>
<div id="myContent">
<p>Alternative content</p>
</div>
</body>
</html>
Хорошим инструментом для использования является генератор HTML и JavaScript SWFObject . Он в основном генерирует HTML и JavaScript, необходимые для встраивания Flash с использованием SWFObject. Поставляется с очень простым пользовательским интерфейсом для ввода параметров.
Настоятельно рекомендуется и очень прост в использовании.
var el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);
<object width="100" height="100">
<param name="movie" value="file.swf">
<embed src="file.swf" width="100" height="100">
</embed>
</object>
Это подходит для применения из корневой среды.
<object type="application/x-shockwave-flash" data="/dir/application.swf"
id="applicationID" style="margin:0 10px;width:auto;height:auto;">
<param name="movie" value="/dir/application.swf" />
<param name="wmode" value="transparent" /> <!-- Or opaque, etc. -->
<!-- ↓ Required paramter or not, depends on application -->
<param name="FlashVars" value="" />
<param name="quality" value="high" />
<param name="menu" value="false" />
</object>
Дополнительные параметры должны быть / могут быть добавлены в зависимости от .swf сам. Никакого встраивания , только объект и параметры внутри, поэтому он остается действительным, работает и может использоваться везде, не имеет значения, какой! DOCTYPE - это все. :)
<object type="application/x-shockwave-flash" data="http://www.youtube.com/v/VhtIydTmOVU&hl=en&fs=1&color1=0xe1600f&color2=0xfebd01"
style="width:640px;height:480px;margin:10px 36px;">
<param name="movie" value="http://www.youtube.com/v/VhtIydTmOVU&hl=en&fs=1&color1=0xe1600f&color2=0xfebd01" />
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="wmode" value="opaque" />
<param name="quality" value="high" />
<param name="menu" value="false" />
</object>
Если вы используете одну из этих библиотек js для вставки Flash, я предлагаю добавить тег вставки простого объекта внутри <noscript/>
.
Я использую http://wiltgen.net/objecty/ , это помогает встраивать медиа-контент и позволяет избежать проблемы IE «Нажми, чтобы активировать».
Это будет работать, я уверен!
<embed src="application.swf" quality="high" pluginspage="http://www.macromedia.com/go/getfashplayer" type="application/x-shockwave-flash" width="690" height="430">
Какой «лучший» способ? Такие слова, как «самый эффективный», «самый быстрый рендеринг» и т. Д. Более конкретны. В любом случае, я предлагаю альтернативный ответ, который помогает мне большую часть времени (неважно, «лучший» или нет).
Альтернативный ответ: используйте iframe.
То есть разместить файл SWF на сервере. Если вы поместите SWF-файл в корневую папку или папку public_html, SWF-файл будет расположен по адресу www.YourDomain.com/YourFlashFile.swf
.
Затем, в вашем index.html или где-либо еще, свяжите вышеуказанное местоположение с вашим iframe, и оно будет отображаться вокруг вашего контента, куда бы вы ни поместили свой iframe. Если вы можете поместить туда iframe, вы можете поместить туда SWF-файл. Сделайте размеры iframe такими же, как у вашего SWF-файла. В приведенном ниже примере SWF-файл имеет размер 500 на 500.
Псевдокод:
<iframe src="//www.YourDomain.com/YourFlashFile.swf" width="500" height="500"></iframe>
В строке HTML-кода выше будет встроен ваш SWF-файл. Никакого другого беспорядка не требуется. Плюсы: W3C-совместимость, дружественный дизайн страницы, отсутствие проблем со скоростью, минималистский подход.
Минусы: пробел вокруг вашего SWF-файла при запуске в браузере.
Это альтернативный ответ. Является ли это «лучшим» ответом, зависит от вашего проекта.
//www...
использовать //
означает, что если вы используете HTTPS или HTTP, он работает с тем же типом соединения
Я знаю, что это старый вопрос. Но этот ответ будет хорошим пока.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>histo2</title>
<style type="text/css" media="screen">
html, body { height:100%; background-color: #ffff99;}
body { margin:0; padding:0; overflow:hidden; }
#flashContent { width:100%; height:100%; }
</style>
</head>
<body>
<div id="flashContent">
<object type="application/x-shockwave-flash" data="histo2.swf" width="822" height="550" id="histo2" style="float: none; vertical-align:middle">
<param name="movie" value="histo2.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffff99" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
</object>
</div>
</body>
</html>
Это работает на IE, Edge, Firefox, Safari и Chrome.
<object type="application/x-shockwave-flash" data="movie.swf" width="720" height="480">
<param name="movie" value="movie.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<param name="play" value="true" />
<param name="loop" value="true" />
<param name="wmode" value="window" />
<param name="scale" value="showall" />
<param name="menu" value="true" />
<param name="devicefont" value="false" />
<param name="salign" value="" />
<param name="allowScriptAccess" value="sameDomain" />
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
</object>
Это сработало для меня:
<a target="_blank" href="{{ entity.link }}">
<object type="application/x-shockwave-flash" data="{{ entity.file.path }}?clickTAG={{ entity.link }}" width="120" height="600" style="visibility: visible;">
<param name="quality" value="high">
<param name="play" value="true">
<param name="LOOP" value="false">
<param name="wmode" value="transparent">
<param name="allowScriptAccess" value="true">
</object>
</a>
Используйте <embed>
элемент:
<embed src="file.swf" width="854" height="480"></embed>
Вы можете использовать JavaScript, если вы знакомы, например:
swfobject.embedSWF("filename.swf", "Title", "width", "height", "9.0.0");
- 9.0.0 - это флэш-версия.
Или вы можете использовать <object>
тег HTML5.