Использование SWFObject
Думаю, всем, кто работает с Flash, известен такой способ вставки роликов на страницу, как SWFObject. Сейчас это уже SWFObject 2. Всем известные еще с первой версии плюсы - это соответствие веб-стандартам и использование внешнего управления переменными в самом ролике, продолжают иметь место быть и следовательно, я рекомендую пользоваться таким способом для вставки Flash. Единственную поправку я могу сказать, что я предочел бы использовать эту конструкцию для меню и галерей, т.е. объектов, для которых нужно иметь возможность управления извне. SWFObject 2 позволяет вставить ролик в страницу как статически, обычной разметкой, так и динамически, то есть, как и раньше, с использованием JavaScript. Чем хорошо статический способ, так это тем, что даже если у посетителя сайта отключено выполнение JavaScript, ролик все равно будет виден, ну а динамический путь благополучно запрещает активацию Flash содержимого, к примеру в Опере или в печально/унылом IE. Кстати: SWFObject кроссбраузерен, и работает во всех популярных браузерах на Mac и PC.
Для тех, кто не совсем в курсе, что к чему, поясняю основную пользу от SWFObject: скрипт позволяет показать пользователю, не установившему плагин для просмотра Flash-контента в браузере, альтернативный контент, который, кроме того, еще и прекрасно индексируется поисковиками.
Для работы с SWFObject нужно скачать JavaScript API. Сам файл SWFObject совсем небольшой, всего 8.7Kb. По сути, JavaScript используется для того, чтобы корректно определить необходимую версию Flash Player, и запускать Adobe Express Install, если версия устаревшая. К сожалению, тег embed еще пока есть и нужен он пока для работы со старыми версиями Webkit, которые игнорируют вложенные в object элементы param.
Итак,
Стандартная разметка
<head>
<title>SWFObject - static</title>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.registerObject("Id", "9.0.0", "expressInstall.swf");
</script>
</head>
<body>
<div>
<object id="Id" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="468" height="60">
<param name="movie" value="flash.swf" />
<!--[if !IE]>-->
</object><object type="application/x-shockwave-flash" data="flash.swf" width="468" height="60">
<!--<![endif]-->
<p>Alternative content</p>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</div>
</body>
</html>
На данном примерном коде веб-страницы, мы видим следующее:
Обязательно нужно продублировать object, внешний object работает для унылого IE, а внутренний object для остальных браузеров, поэтому если нужно определить атрибуты или param, их следует также прописать дважды.
Обязательные атрибуты:
classid - всегда следует писать:D27CDB6E-AE6D-11cf-96B8-444553540000
type - всегда следует писать application/x-shockwave-flash
data - указывается для внутреннего object, означает путь к SWF-файлу.
width - определяет ширину ролика
height - определяет высоту ролика
Обязательные param:
movie - только для внешнего object, определяет путь к SWF файлу
Этой строкой мы собственно и подключаем скрипт SWFObject.
swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");
</script>
Этим мы, что называется, «регистрируем» наш Flash ролик. Первый аргумент id – он используется в разметке. Следом идет требуемая версия Flash Player. А затем задается активация Adobe Express Install, то есть там надо прописать путь к expressInstall.swf который есть в архиве SWFObject. Кстати, там в архиве есть и fla-файл, на случай, если вам захочется сменить дефолтный загрузчик. Замечу, что минимально возможный размер SWF для его работы 310х137 пк.
Динамический метод
<head>
<title>SWFObject dynamic embed</title>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("flash.swf", "Alternative", "300", "120", "9.0.0");
</script>
</head>
<body>
<div id="Alternative">
<p>Alternative content</p>
</div>
</body>
</html>
В динамическом методе вставки, сперва следует задать альтернативный контент:
<p>Alternative content</p>
Затем, следовательно, подключаем скрипт:
<script type="text/javascript">
swfobject.embedSWF("flash.swf", "Alternative", "300", "120", "9.0.0");
</script>
В динамическом методе есть 5 обязательных атрибутов: swfUrl, id, width, height, version, и четыре дополнительных expressInstallSwfurl, flashvars, params, attributes.
Основные атрибуты:
swfUrl – указывается путь к файлу ролика
id - указывается id того HTML элемента в котором прописан альтернативный контент
width (Строка, обязательный) ширина SWF
height (Строка, обязательный) высота SWF
version указывается версия FlashPlayer необходимого для воспроизведения вашего ролика, в формате "major.minor.release".
Дополнительные атрибуты:
expressInstallSwfurl - указывается путь к файлу expressinstall.swf.
flashvars – переменные, передаются в ролик (имя: значение)
params - элементы params
attributes - атрибуты элемента object
Кстати говоря, настройки фона ролика (прозрачный/непрозрачный) при использовании SWFObject прописывается строками:
или
_______________________________________________________________________



[...] баннер в веб-страницу очень удобно с помощью SWFObject, но можно использовать и обычный код, который выдает [...]