Вопрос

Как встроить SWF-файл в HTML-страницу?

Это было полезно?

Решение

Лучший подход к встраиванию SWF-файла в HTML-страницу - использовать SWFОбъект.

Это простая библиотека 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>

Хорошим инструментом для использования наряду с этим являются SWFObject HTML и JavaScript генератор.Он в основном генерирует HTML и JavaScript, необходимые для встраивания Flash с помощью SWFObject.Поставляется с очень простым пользовательским интерфейсом для ввода ваших параметров.

Он настоятельно рекомендуется и очень прост в использовании.

Другие советы

<object width="100" height="100">
    <param name="movie" value="file.swf">
    <embed src="file.swf" width="100" height="100">
    </embed>
</object>

Как насчет простого встраивания тега HTML5?

<!DOCTYPE html>
<html>
<body>

<embed src="anim.swf">

</body>
</html>

Это подходит для применения из корневой среды.

<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&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" 
style="width:640px;height:480px;margin:10px 36px;">

<param name="movie" value="http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;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, я предлагаю добавить тег plain object embed внутри <noscript/>.

Я использую http://wiltgen.net/objecty/, это помогает встраивать медиаконтент и избежать проблемы IE "нажмите, чтобы активировать".

Как уже упоминалось, SWF-объект великолепен. НЛО на это тоже стоит посмотреть

Это сработает, я уверен!

<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-файла при запуске в браузере.

Это альтернативный ответ.Является ли это "лучшим" ответом, зависит от вашего проекта.

Я знаю, что это старый вопрос.Но этот ответ будет хорош для настоящего времени.

<!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>

Вы можете использовать JavaScript, если вы знакомы с таким:

swfobject.embedSWF("filename.swf", "Title", "width", "height", "9.0.0");

--версия 9.0.0 - это флэш-версия.

Или вы можете использовать <object> тег HTML5.

У меня это сработало:

    <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>

Это работает в 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top