Хотя встраивание SWF в HTML не слишком сложно, есть несколько тонкостей для разных браузеров, определение того, установлен ли Flash и т. д. Для включения AJAX существуют стандартные фрагменты кода, которые вы можете использовать, чтобы избежать хлопот, связанных со всеми случаями. ... является ли их аналогичной «эталонной реализацией» для встраивания SWF, которая охватывает все основы?
Существует ли стандартный способ копирования и вставки для безопасного размещения SWF на веб-странице?
Ответы (5)
Есть ли стандарт? К сожалению, нет. Желательные моменты метода встраивания Flash:
- современный браузер совместимый
- IE-совместимый
- совместимый с древним браузером
- соответствующий стандартам
- поддержка потоковой передачи Flash (воспроизведение до загрузки всего файла) в IE
- Не повторяйтесь
- разрешить резервный контент
- нет зависимости от JavaScript
но нет ни одной наценки, удовлетворяющей всем этим пунктам. Пункт 6 невозможно выполнить полностью, но некоторые решения терпят неудачу хуже, чем другие.
Самая простая разметка, которую вы можете использовать, — это версия, изложенная в классической статье Flash Satay:
<object type="application/x-shockwave-flash" data="file.swf" width="x" height="y">
<param name="movie" value="file.swf" />
(Non-Flash content here)
</object>
В статье ALA жалуется, что эта версия не предложит пользователю загрузить Flash, если он не установлен; лично я вижу в этом плюс. Но он по-прежнему терпит неудачу в пунктах 3 и 5. Пункт 5 может иметь значение, а может и не иметь: если ваш Flash-файл представляет собой простое приложение, медиаплеер или загрузчик, это вообще не имеет значения, но если это большая анимация, это может быть неудачно. .
Может быть, пункт 3 больше не имеет значения; в наши дни никто на самом деле не использует Netscape 4 или IE4. Но если это так для вас, вам нужен встроенный тег старой школы. Это также поддерживается современными браузерами, что означает, что вы можете использовать метод ActiveX для внешнего объекта, поэтому вы получаете потоковую передачу в IE:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="x" height="y">
<param name="movie" value="file.swf" />
<embed type="application/x-shockwave-flash" src="file.swf" width="x" height="y" />
</object>
Это «традиционный» метод встраивания Flash. Он не работает по пунктам 4 и 7 и немного хуже по пункту 6.
Третий подход, используемый такими библиотеками, как SWFObject, заключается в использовании JavaScript для выбора наилучшего пути. для создания экземпляра Flash в текущем браузере. Это может затронуть все вышеперечисленные пункты, кроме, естественно, 8. Некоторые библиотеки предлагают способы смягчить это, также включая разметку статических объектов, обменивая пункт 8 на пункт 6.
Apple (Link например)
Содержимое, которое будут просматривать ваши подключаемые модули, должно быть встроено в HTML. Большинство браузеров делают это с помощью тега EMBED, но для других требуется тег OBJECT. Для максимальной совместимости вы можете настроить свою страницу так, чтобы она поддерживала и то, и другое.
Adobe (например, ссылка)
Тег OBJECT используется Internet Explorer в Windows, а тег EMBED используется Netscape Navigator (Macintosh и Windows) и Internet Explorer (Macintosh), чтобы указать браузеру загрузить Macromedia Flash Player. Internet Explorer в Windows использует элемент управления ActiveX для воспроизведения содержимого Macromedia Flash, в то время как все другие комбинации браузера и платформы используют технологию подключаемого модуля Netscape для воспроизведения содержимого Macromedia Flash. Это объясняет необходимость двух тегов.
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/ shockwave/cabs/flash/swflash.cab#version=6,0,40,0" WIDTH="550" HEIGHT="400" id="myMovieName"> <PARAM NAME=movie VALUE="myFlashMovie.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED href="/support/flash/ts/documents/myFlashMovie.swf" quality=high bgcolor=#FFFFFF WIDTH="550" HEIGHT="400" NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"> </EMBED> </OBJECT>
Я бы порекомендовал SWF Object по сравнению со всеми другими вариантами, потому что он создает HTML-код, соответствующий стандартам, и его действительно легко настроить.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<div id="myvideo"></div>
<script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myplayerid1" };
swfobject.embedSWF("http://www.youtube.com/v/gRvUpoTT-Bo&hl=pt-br&fs=1&enablejsapi=1&playerapiid=myplayerid1&version=3", "myvideo", "425", "344", "8", null, null, params, atts);
</script>
Это может быть простой способ... использовать js fiddle для тестирования любого кода... это очень помогло мне попробовать много вещей