Як вставити файл SWF на сторінку HTML?


Відповіді:


174

Найкращим підходом до вбудовування SWF на сторінку HTML є використання SWFObject .

Це проста бібліотека JavaScript з відкритим кодом, яка є простим у використанні та зручним для стандартів способом вбудовування Flash-вмісту.

Він також пропонує виявлення версій Flash Player. Якщо користувачеві не потрібна версія Flash або відключена JavaScript, він побачить альтернативний вміст. Ви також можете використовувати цю бібліотеку для запуску оновлення Flash-програвача. Після оновлення користувача він буде перенаправлений назад на сторінку.

Приклад з документації:

<!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. Поставляється з дуже простим інтерфейсом для введення ваших параметрів.

Настійно рекомендується і дуже простий у використанні.


11
SWFOоб'єкт хороший. Це просто працює. Ще чудовішою ідеєю є використання мережі доставки вмісту для отримання javascript. Я використовую Google, ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js
— Ardee Арам

У мене виникли проблеми з використанням тегу об'єктів безпосередньо з IE9, але він прекрасно працює з swfobject.
— AndyMcKenna

Дякую за вашу відповідь. Тепер ви можете запропонувати програвач для доступу до можливостей відтворення разом з робочим прикладом у самому html. ????
— Суміт Рамтеке

Чи може це працювати в тій системі, де флеш-плеєр не встановлений або він підтримує всі браузери.
— Мохаммед Джавед

Проект тепер переміщено до GitHub: github.com/swfobject/swfobject, а нова техніка для вбудовування SWF-об’єктаvar el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);
— Lucky

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

1
Цей код не відповідає дійсності XHTML ... <embed> не повинен містити об'єкт-тег.
— Анхеледір

59
Немає специфікації користувача, щоб бути XHTML дійсним, він попросив HTML
— Ólafur Waage,

3
У цій статті є гарне пояснення щодо вбудовування флеш-версії та дійсного XHTML. yoast.com/articles/valid-flash-embedding
— Joko Wandiro

3
чому б не використовувати dataатрибут в елементі <object> ? Цитата з w3c html5 docs: Принаймні один з атрибутів даних або атрибутів типу повинен бути присутнім.
— vladkras

@JokoWandiro посилання, яке ви надали, на жаль, немає. Ось архівна версія: web.archive.org/web/20180602024700/https://yoast.com/…
— Hermann.Gruber

17

Як щодо простого вбудовування тега HTML5?

<!DOCTYPE html>
<html>
<body>

<embed src="anim.swf">

</body>
</html>

13

Це підходить для застосування з кореневого середовища.

<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 він сам. Немає вбудовування , просто об’єкт та параметри всередині, тож він залишається дійсним, працюючим та корисним у будь-якому місці, не важливо, про що! :)


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

2
Зауважте, що параметри об’єкта> дані та фільми> значення однакові. Цей код повинен працювати для будь-якого безкоштовного перегляду та обміну відео на YouTube.
— Моторошний

3
Взагалі кажучи, відповіді бажано пояснити кодом, який вони дають, а не просто скинути код на запитувача. Мета - дізнатися про проблеми та запобігти їх у майбутньому, а не змушувати їх зникати.
— KRyan

7

Якщо ви використовуєте одну з цих бібліотек js для вставки Flash, пропоную додати тег вбудовування простого об’єкта всередині <noscript/>.




2

Цей буде працювати, я впевнений!

<embed src="application.swf" quality="high" pluginspage="http://www.macromedia.com/go/getfashplayer" type="application/x-shockwave-flash" width="690" height="430">

1

Який "найкращий" спосіб? Слова типу "найефективніший", "найшвидший візуалізація" тощо є більш конкретними. У будь-якому випадку, я пропоную альтернативну відповідь, яка допомагає мені більшу частину часу (незалежно від того, "найкраще" чи ні) не має значення).

Альтернативна відповідь: Використовуйте рамку iframe.

Тобто розмістити файл SWF на сервері. Якщо ви покладете файл SWF у папку root або 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 під час запуску у веб-переглядачі.

Це альтернативна відповідь. Чи це найкраща відповідь, залежить від вашого проекту.


3
для Google @Stoic шкода вашу неправду слід з //www...допомогою //кошти, якщо ваш на HTTPS або HTTP працює , використовуючи один і той же тип з'єднання
— Barkermn01

1

Я знаю, це старе питання. Але ця відповідь буде корисною для присутніх.

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

1

Thi працює на 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>

0

Це працювало для мене:

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


-1

Ви можете використовувати JavaScript, якщо ви знайомі, наприклад:

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

- 9.0.0 - це флеш-версія.

Або ви можете використовувати <object>тег HTML5.


-1 swfobject - це не просто частина JavaScript, ви не можете просто зателефонувати, не вставивши бібліотеку. і більшість функціональних можливостей тегу <object> було вилучено з HTML 4 до 5. Він все ще може використовуватися, але не рекомендується. Загалом дуже погана відповідь.
— rorypicko

Ви вже пробували це, перш ніж сказати, що це дуже погана відповідь? майте на увазі, що дуже погана відповідь - це відповідь, яка абсолютно не працює або неправильна.
— Аллан

той факт, що ви інформуєте когось про використання javascript, а потім вставляючи код за допомогою бібліотеки javascript, про який ви навіть не згадували, це погана відповідь
— rorypicko

Я вже згадував про використаний Javascript і дав сценарій. Якщо я дав цілий робочий код / ​​сценарій, що робить годування ложкою. Сценарій чудово - це лише логіка.
— Аллан

Ви нерозумієте мій коментар. Ви не казали йому включати файл JavaScript JavaScript
— SWFObject
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.