Як вставити файл 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.